我想通过Maven使用最新版本的powermock库(1.6.5)。但是我的包无法编译,因为 Maven 发现依赖收敛错误。下面您可以看到org.objenesis:objenesis
库在同一依赖项中有 2 个不同版本:
Dependency convergence error for org.objenesis:objenesis:2.1 paths to
dependency are:
+-mypackage:v1-SNAPSHOT
+-org.powermock:powermock-api-mockito:1.6.5
+-org.mockito:mockito-core:1.10.19
+-org.objenesis:objenesis:2.1
and
+-mypackage:v1-SNAPSHOT
+-org.powermock:powermock-api-mockito:1.6.5
+-org.powermock:powermock-api-mockito-common:1.6.5
+-org.powermock:powermock-api-support:1.6.5
+-org.powermock:powermock-reflect:1.6.5
+-org.objenesis:objenesis:2.2
我试图排除,但我不能只排除一个版本,我需要排除所有版本,正如我认为的那样,这并没有通过我。
你有同样的问题吗?我能做什么?
objenesis, because two different libraries depends on two different version of
objenesis有两个不同的版本:PowerMock和Mockito。您有两种方法可以解决此问题:
- 从 PowerMock 依赖项中排除
org.objenesis:objenesis
,并将其手动添加到您的 pom 中。 - 从 PowerMock 依赖项中排除
mockito-core
,并将其作为单独的体面添加到您的 pom 中,并排除objenesis
。
我遵循了 Arthur 的回答,但只将 objenesis 排除在 powermock-module-junit 依赖项之外。在那之后,执行器插件很高兴。
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.7.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>1.7.0</version>
<scope>test</scope>
</dependency>