私はMaven 2.2.1を使用しており、プロジェクトをビルドするためにこのコマンドを使用しました
mvn clean install -Dmaven.test.skip=true
しかし、アーティファクトの 1 つが見つからないためビルドが失敗しました。ただし、以下を使用した場合:
mvn clean install -DskipTests
すべて正常に動作しました。
これまで、これら2つのコマンドは同等であると考えてきました。しかし、このリンク-Dmaven.test.skip=true
テストケースのコンパイルもスキップすることを示唆しているようです。
しかし、それでも、あるコマンドは機能し、別のコマンドは機能しない理由がわかりません。どなたか説明していただければ幸いです。
ベストアンサー1
ご指摘のとおり、-Dmaven.test.skip=true
テストのコンパイルはスキップされます。さらに言えば、テスト成果物のビルドはスキップされます。大規模なプロジェクトでは、テスト ユーティリティと基本クラスを同じプロジェクト内のモジュール間で共有するのが一般的です。
これは、モジュールに、test-jar
以前にビルドされたモジュールの を要求することによって実現されます。
<dependency>
<groupId>org.myproject.mygroup</groupId>
<artifactId>common</artifactId>
<version>1.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
-Dmaven.test.skip=true
(または単に-Dmaven.test.skip
) が指定されている場合、test-jar
はビルドされず、 に依存するモジュールのビルドは失敗します。
対照的に、 を使用すると-DskipTests
、Maven はテストを実行しませんが、テストをコンパイルしてテスト jar をビルドし、後続のモジュールで使用できるようにします。