电源模拟的依赖关系收敛错误



我想通过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>

最新更新