[解決済み] 複数モジュールプロジェクトにおけるMavenのテスト依存性
質問
mavenを使用して、複数モジュールのプロジェクトをビルドしています。私のモジュール2は、コンパイルスコープでモジュール1のsrcに依存し、テストスコープでモジュール1のテストをしています。
モジュール2
<dependency>
<groupId>blah</groupId>
<artifactId>MODULE1</artifactId>
<version>blah</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
これは問題なく動作します。私のモジュール3がモジュール1のsrcに依存し、コンパイル時にテストするとします。
モジュール3
<dependency>
<groupId>blah</groupId>
<artifactId>MODULE1</artifactId>
<version>blah</version>
<classifier>tests</classifier>
<scope>compile</scope>
</dependency>
を実行すると
mvn clean install
を実行すると、私のビルドはモジュール3まで実行され、モジュール3のところでモジュール1のテストの依存関係を解決できなかったので失敗しました。そこで
mvn install
を実行した後、モジュール 3 のみに戻って
mvn install
を実行すると、ビルドされます。どのように私はこれを修正することができますか?
どのように解決するのですか?
何をしようとしているのか疑問ですが、あるプロジェクト(module1)用に作成したテストを別のプロジェクトで再利用したいのだと仮定します。の一番下の注意書きで説明されているように、このテストは 付属のテストを使用するためのガイド :
なお、以前の版では、このガイドでは
<classifier>tests</classifier>
の代わりに<type>test-jar</type>
. これは現在、いくつかのケースでは動作しますが、インストール前のライフサイクル・フェーズが呼び出された場合、テスト JAR モジュールおよび任意のコンシューマのリアクター・ビルドでは適切に動作しません。このようなシナリオでは、Maven はリアクタービルドの出力からテスト JAR を解決せず、ローカル/リモートリポジトリから解決します。明らかに、リポジトリからの JAR は古かったり、完全に見つからないことがあり、ビルドの失敗を引き起こします (cf. MNG-2045 ).
そこでまず、コンパイルされたテストを JAR にパッケージングし、一般的な再利用のためにデプロイするために、以下のように
maven-jar-plugin
を以下のように設定します。
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
次に、通常通りテスト用JARアーティファクトをインストール/デプロイします(
mvn install
または
mvn deploy
).
最後に、テスト用JARを使用するために、依存関係に指定されたタイプで
test-jar
:
<project>
...
<dependencies>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>
関連
-
[解決済み] あるアーティファクトの依存関係ツリーを取得する方法は?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Mavenに最新バージョンの依存関係を使用するように指示するにはどうすればよいですか?
-
[解決済み】Maven: POMに依存関係を追加した後、リポジトリを更新するコマンド
-
[解決済み] mvn install の代替となる Gradle
-
[解決済み] Mavenが使用するJDKを指定する
-
[解決済み] Maven: ライブラリによって追加された依存関係をオーバーライドする方法
-
[解決済み] リモートのmaven2アーティファクトをローカルリポジトリにダウンロードするためのシンプルなコマンドライン?
-
[解決済み] ローカルリポジトリへの "mvn deploy "と "mvn install "の違いは何ですか?
-
[解決済み] Mavenのローカルリポの場所を取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] あるアーティファクトの依存関係ツリーを取得する方法は?
-
[解決済み】MavenのアーティファクトとgroupIdの命名について
-
[解決済み】単一の依存関係のすべての推移的な依存関係を除外する
-
[解決済み] Mavenが使用するJDKを指定する
-
[解決済み] 複数モジュールのMavenプロジェクトで、モジュール間でsrc/testクラスを共有する
-
[解決済み] リモートのmaven2アーティファクトをローカルリポジトリにダウンロードするためのシンプルなコマンドライン?
-
[解決済み] Mavenのリアクタービルドからモジュールを除外する方法は?
-
[解決済み] Maven: net.sf.json-libがありません。
-
[解決済み] Windows版Maven2でのJavaヒープスペースの設定
-
[解決済み] 複数のスキーマパッケージを生成するようにjaxb / Mavenに指示するにはどうすればよいですか?