我是 Maven 的新手,我在运行时遇到 NoSuchMethodError
问题,因为在将我的工作与其他人的工作合并后,我的项目中没有使用任何地方的方法,特别是关于com.google.inject.util.Types.collectionOf
。
新工作与修复项目的可执行 jar 有关,因此我认为任何修改都与 guice 无关。我的本地存储库包含与我运行该项目的先前版本时完全相同的 guice 和多绑定(bind) 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)
最佳答案
这个问题是旧问题,已经在评论中回答了,我也遇到了同样的问题,根据评论,我做了这些事情,我的问题得到了解决。 所以只是为了帮助其他新用户在这里发帖。
当我遇到这个问题时,我对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>
关于未使用的方法的 java.lang.NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44933551/