会社のインフラストラクチャが変更されたため、Maven 2.2.1 から Maven 3.0.5 へのアップグレードが必要になりました
私のプロジェクトの構造は、いくつかのモジュールを含む 1 つの EAR です。EAR の依存関係はlib
、クラスパス上にあるそのフォルダーに格納され、すべてのモジュールがそれを使用できます。複数のモジュールで使用される依存関係がある場合、スコープ内compile
およびprovided
それを必要とするモジュールのスコープ内で EAR の依存関係として追加されます。このようにして、ファイルは二重になりません。
アップグレード後、スコープprovided
のある依存関係は別の方法で処理されます。それらの推移的な依存関係は、モジュールの lib フォルダーに追加されます。これにより、競合が発生します。
いくつかの調査の結果、提案された解決策を見つけました - maven-dependency-plugin を<excludeScope>provided</excludeScope>
during<goal>copy-dependencies</goal>
に設定しますが、何も変わりません -lib
とにかく一時的な依存関係がモジュールのフォルダに追加されます。
問題を間違って理解していますか?これを引き起こすmaven 2と3の間で何が変わったのですか?
よろしく、 ヤン
面倒なモジュールのプラグイン構成:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeScope>provided</excludeScope>
</configuration>
</execution>
</executions>
</plugin>