Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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.lang.NoSuchMethodError_Java_Maven_Nosuchmethoderror - Fatal编程技术网

未使用的方法的java.lang.NoSuchMethodError

未使用的方法的java.lang.NoSuchMethodError,java,maven,nosuchmethoderror,Java,Maven,Nosuchmethoderror,我是Maven的新手,我在运行时遇到了一个问题,NoSuchMethodError,因为在将我的工作与其他人的工作合并后,我的项目中没有使用该方法,特别是关于com.google.inject.util.Types.collectionOf 新的工作与修复项目的可执行jar有关,因此我认为任何修改都与guice无关。我的本地repo包含的guice和multibinding jar版本与我运行此项目的上一个版本时完全相同,pom文件没有明显的更改 我很熟悉这种错误,以前也解决过,但这次我无法解决

我是Maven的新手,我在运行时遇到了一个问题,
NoSuchMethodError
,因为在将我的工作与其他人的工作合并后,我的项目中没有使用该方法,特别是关于
com.google.inject.util.Types.collectionOf

新的工作与修复项目的可执行jar有关,因此我认为任何修改都与guice无关。我的本地repo包含的guice和multibinding jar版本与我运行此项目的上一个版本时完全相同,pom文件没有明显的更改

我很熟悉这种错误,以前也解决过,但这次我无法解决问题。以下是我的错误消息的开头:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.inject.util.Types.collectionOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
    at com.google.inject.multibindings.Multibinder.collectionOfProvidersOf(Multibinder.java:202)
    at com.google.inject.multibindings.Multibinder$RealMultibinder.<init>(Multibinder.java:283)
    at com.google.inject.multibindings.Multibinder$RealMultibinder.<init>(Multibinder.java:258)
    at com.google.inject.multibindings.Multibinder.newRealSetBinder(Multibinder.java:178)
    at com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:132)
线程“main”java.lang.NoSuchMethodError中的异常:com.google.inject.util.Types.collectionOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType; 在com.google.inject.multibindings.Multibinder.collectionOfProvidersOf(Multibinder.java:202)上 在com.google.inject.multibindings.Multibinder$realmultipbinder.(Multibinder.java:283) 在com.google.inject.multibindings.Multibinder$realmultipbinder.(Multibinder.java:258) 在com.google.inject.multibindings.Multibinder.newrealsbinder(Multibinder.java:178)上 位于com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:132)
这个问题很老,已经在评论中得到了回答,我也面临同样的问题,根据评论,我做了事情,我的问题得到了解决。 为了帮助其他新用户在这里发帖

当我面对这个问题时,我对pom的依赖性如下

<dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>4.0</version>
</dependency>

com.google.inject
圭斯
4
现在,在添加了一个依赖项之后,它得到了解决,并且运行良好

<dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-multibindings</artifactId>
        <version>4.0</version>
</dependency>

com.google.inject.extensions
guice多重绑定
4

当一个jar依赖于另一个jar(暂时依赖)时,有时会发生这种情况,如果人们玩得很好,他们就会一起玩。有时候不是。这个特殊的神器是什么?@MaxPower这个神器似乎是guice。似乎guice multibindings需要收集,但我在这个项目的其他版本中从未遇到过这个问题。本地repo中的guice和guice multibindings的版本都是4.1.0。您是否尝试过将这两个版本显式添加到pom.xml中?@MaxPower我刚刚做了这件事,而且效果很好!我原以为在别处将它们声明为依赖项就可以了,但我想不行。非常感谢你!!