Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoSuchMethodError-Maven依赖项使用不同的子依赖项_Java_Maven_Dependencies_Dependency Management - Fatal编程技术网

Java NoSuchMethodError-Maven依赖项使用不同的子依赖项

Java NoSuchMethodError-Maven依赖项使用不同的子依赖项,java,maven,dependencies,dependency-management,Java,Maven,Dependencies,Dependency Management,我在一个使用有两个依赖项的项目中遇到了一个问题。一个给第三方lib,它使用Guava 10.0.1,一个给我的,我使用Guava 14.0.1。 现在的问题是,10.0.1中有一个方法在14.0.1中被删除,相反,在10.0.1之后添加了一个类。 因此,我得到一个NoSuchMethodError或一个NoClassDefFoundError。 有什么办法可以解决这个问题吗?您可以在自己的项目中使用较旧的番石榴版本,也可以告诉第三方库使用较新的版本(并祈祷它能起作用) 您可以使用maven ex

我在一个使用有两个依赖项的项目中遇到了一个问题。一个给第三方lib,它使用Guava 10.0.1,一个给我的,我使用Guava 14.0.1。
现在的问题是,10.0.1中有一个方法在14.0.1中被删除,相反,在10.0.1之后添加了一个类。
因此,我得到一个NoSuchMethodError或一个NoClassDefFoundError。

有什么办法可以解决这个问题吗?

您可以在自己的项目中使用较旧的番石榴版本,也可以告诉第三方库使用较新的版本(并祈祷它能起作用)

您可以使用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>

第三方
解放党
1
编译
番石榴
番石榴

我已经找到了这些可能性。不幸的是,排除标记不是一个选项,因为第三方库使用的方法在后来的Guava版本中被删除。此外,更新第三方库的机会微乎其微,因为它不再受到实际支持。。