2017-07-12 6 views
3

私のプロジェクトは、別のプロジェクトの影付きのjarファイルに依存しています。この他のプロジェクトは、シェードプラグインを使用して、artifact A version 1shaded.a.b.cのパッケージa.b.cのすべてのクラスを再配置しています。影付きのjarを元のプロジェクトでシェーディングを引き起こす依存性として使用する

私のプロジェクトでもこのartifact A but version 2が使用されています。私のプロジェクトをビルドすると、から来ると予想されるa.b.c.dのインポートステートメントが、shaded.a.b.c.dに変更されました。元のプロジェクトではシェーディングを使用していませんが、依存関係のjarファイルのシェーディングプラグインが元のプロジェクトでシェーディングを引き起こしています。

これが期待どおりの動作ですか?この推移的な陰影を止める方法はありますか?他のプロジェクトの

シェードプラグイン:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <shadedArtifactAttached>false</shadedArtifactAttached> 
     <outputDirectory>${project.build.directory}</outputDirectory> 
     <createDependencyReducedPom>true</createDependencyReducedPom> 
     <promoteTransitiveDependencies>true</promoteTransitiveDependencies> 
     <shadeSourcesContent>true</shadeSourcesContent> 
     <relocations> 
      <relocation> 
       <pattern>a.b.c</pattern> 
       <shadedPattern>shaded.a.b.c</shadedPattern> 
      </relocation> 
     </relocations> 
    </configuration> 
</plugin> 

答えて

0

が判明artifact Aはまた、プロジェクトの親ポンポンで(管理を依存関係ありません)、依存関係として定義しました。このプロジェクトの後に来た他のすべての子プロジェクトがこの影付きアーチファクト(それでもなお理由は分からない)を使用していました。

依存関係を親プロジェクトの依存関係管理に移動し、子プロジェクトのそれぞれの依存関係を定義することで修正しました。

関連する問題