2

I want to use the last version of the powermock library (1.6.5) through Maven. But My package cannot be compiled, since Maven finds dependency Convergence error. Below you can see that there are 2 different versions of org.objenesis:objenesis library in the same dependency:

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

I tried to make an exclusion, but I cannot exclude only one version, I need to exclude all of them, which does not pass me, as I think.

Did you have the same problem? What can I do?

user2957954
  • 1,221
  • 2
  • 18
  • 39

2 Answers2

4

There two different version of objenesis, because two different libraries depends on two different version ofobjenesis`: PowerMock and Mockito. You have two options to resolve the issue:

  • Exclude org.objenesis:objenesis from PowerMock dependencies and add it manually to your pom.
  • Exclude mockito-core from PowerMock dependencies and add it as separated decency to your pom with excluding objenesis.
Artur Zagretdinov
  • 2,034
  • 13
  • 22
1

I followed the answer from Arthur, but only made an exclusion for objenesis to the powermock-module-junit dependency. After that the enforcer plugins was happy.

    <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>
Steven Rudolf
  • 124
  • 1
  • 8