我对Maven很陌生,而且我在运行时遇到NoSuchMethodError
问题,因为在将我的工作与其他人合并后,我的项目中的任何地方都没有使用该方法。 ; s,特别是关于com.google.inject.util.Types.collectionOf
。
新工作与修复项目的可执行jar有关,所以我不认为任何修改与guice有关。我的本地仓库包含完全相同的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)
答案 0 :(得分:0)
这个问题很老,已在评论中得到回答,我也面临同样的问题并以评论为基础,我做了一些事情,我的问题得到了解决。 所以只是为了帮助其他新用户在这里发帖。
当我遇到这个问题时,我对pom的依赖性如下所示。
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.0</version>
</dependency>
现在,在添加了一个以下依赖项之后,它已得到解决并且工作正常。
<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-multibindings</artifactId>
<version>4.0</version>
</dependency>