実際、設計上、Mavenはプロジェクトの依存関係として宣言された戦争の推移的な依存関係を解決しません。そこそれについての問題、実際にはMNG-1991は、それはMavenの2.xの中では解決できないだろうと私はことをわからないオーバーレイがこの問題を回避できるようにする場合、私は知りません。提案された解決策についての私の理解は、たとえばpomタイプのプロジェクトで依存関係を複製することです。
(編集:もう少し掘り下げた後、私はこのスレッドで私が以下に引用している何か面白いものを見つけました:
私は先月、Maven戦争プラグインの戦争オーバーレイ機能を多用するAppFuseプロジェクトの開発を支援してきました。それは本当に気の利いた機能です!
戦争オーバーレイで最大のパワーを得るには、プロジェクトが戦争アーティファクトを本格的な依存関係として使用できるようにするWarpathプラグインを開発しました。簡単に言うと:
1)war依存関係アーティファクトの/ WEB-INF / classesディレクトリの内容は、通常のコンパイルなどのタスクのためにプロジェクトのクラスパスに含めることができます。
2)戦争依存関係アーティファクトからの推移的な依存関係は、コンパイルや耳などの他のプラグインで使用できるようになります。したがって、スキニー戦争を作成するときにすべての依存関係を含める必要はありません。
このプラグインは、過去数か月間AppFuseプロジェクトで積極的に使用されており、使用可能で安定している段階にあると感じています。戦争プラグインチームは、戦争プラグイン内にウォーパス機能を含めることに関心がありますか?それをホストするのに最も自然な場所のようです。
したがって、私はそれについての経験はありませんが、Maven Warpathプラグインは実際には見栄えがよくシンプルで、中央リポジトリで利用できます。これを使用するには、pom.xml
ファイルに次のプラグイン構成要素を含めます。
[...]
<build>
<plugins>
<plugin>
<groupId>org.appfuse</groupId>
<artifactId>maven-warpath-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>add-classes</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
そして、クラスパスに含めたいwar依存関係をwarpathタイプの依存関係として追加します。
[...]
<dependencies>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>warpath</type>
</dependency>
</dependencies>
[...]
warとwarpathの両方の依存関係タイプが必要です。warタイプはMavenwarプラグインがwarオーバーレイを実行するために使用し、warpathタイプはWarpathプラグインがプロジェクトクラスパスに含めるアーティファクトの正しいリストを決定するために使用します。
試してみます。)