2016-05-26 22 views
0

Mavenからpowermockライブラリ(1.6.5)の最新バージョンを使いたいです。しかし、私のパッケージはコンパイルできません。なぜなら、Mavenは依存性のコンバージェンスエラーを発見するからです。あなたの下にはorg.objenesis:objenesisライブラリの2つの異なるバージョンが同じ依存であることがわかります。powermockの依存関係の収束エラー

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 

は私が除外を作ってみましたが、私は1つのバージョンのみを除外することはできません、私はそれらのすべてを排除する必要があります、私が思うように、私を渡すことはありません。

同じ問題がありましたか?私に何ができる?

答えて

1

objenesis, because two different libraries depends on two different version of objenesisの2つの異なるバージョンがあります:PowerMockとMockito。

  • PowerMockの依存関係からorg.objenesis:objenesisを除外して、POMに手動で追加します。あなたは問題を解決するには、2つのオプションがあります。
  • mockito-coreをPowerMockの依存関係から除外し、objenesisを除いて、pomと区別された状態で追加してください。
0

私はArthurの答えに従いましたが、powermock-module-junit依存関係のobjenesisを除外しました。その後、執行者のプラグインは満足していました。

<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> 
関連する問題