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