Maven スキップテスト 質問する

Maven スキップテスト 質問する

私は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 をビルドし、後続のモジュールで使用できるようにします。

おすすめ記事