5

我在使用有两个依赖项的项目中遇到问题。一个给第三方库,它使用 Guava 10.0.1,另一个给我的,我使用 Guava 14.0.1。
现在的问题是,10.0.1 中有一个方法在 14.0.1 中被删除,而在 10.0.1 之后添加了一个类。
所以我得到一个 NoSuchMethodError 或一个 NoClassDefFoundError。
有没有办法解决?

4

1 回答 1

2

你可以在你自己的项目中使用旧的 Guava 版本,或者告诉第三方库使用新版本(并祈祷它可以工作)。

您可以使用 maven exclude 标签来确保第三方库不使用它自己的依赖版本。例子:

<dependencies>
    <dependency>
      <groupId>third.party</groupId>
      <artifactId>lib</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
          <groupId>guava</groupId>
          <artifactId>guava</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
  </dependencies>
于 2013-11-06T14:24:40.033 回答