我们正在开发与Classroom集成的应用程序。
我们的一个应用程序的依赖项试图调用一个新的Guava方法,该方法在Classroom引入的guava-jdk5类中不存在:
com.google.common.collect.Sets.SetView
但 方法存在于Guava 22.0中,由其他依赖项引入。因此,我们遇到了这个例外:
NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;
我们的应用程序依赖项之一使用此版本的Guava:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>22.0</version>
</dependency>
Classroom API的当前版本:
<!-- https://mvnrepository.com/artifact/com.google.apis/google-api-services-classroom -->
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-classroom</artifactId>
<version>v1-rev103-1.23.0</version>
</dependency>
取决于:
<!-- https://mvnrepository.com/artifact/com.google.api-client/google-api-client -->
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.23.0</version>
</dependency>
反过来又取决于:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava-jdk5 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-jdk5</artifactId>
<version>17.0</version>
</dependency>
2014年4月22日。
基本上,我们在不同名称的jar中存在类冲突。
我们的问题:
谢谢, 助理小组