次の SureFire 設定でMavenプロジェクトを構築しています:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.maven-surefire-plugin}</version>
<configuration>
<includes>
<include>**/*Test.Java</include>
</includes>
</configuration>
</plugin>
問題は、mvn clean install -DskipTests=true
でビルドすると、テストがまだ実行されていることです。何が問題なのでしょうか?
-DskipTests
( Mavenウェブサイト から)と-DskipTests=true
の両方を試しました。これは、「テストをスキップ」チェックボックスをオンにするとIntelliJ Ideaによって追加されます。
Maven settings.xml
は使用しません。
[〜#〜] edit [〜#〜]SureFireプラグイン構成をコメント化すると、パラメーターは期待どおりに動作します。上記の構成の問題は何ですか?
あなたがしたことはうまくいくはずです。これをさらにデバッグする方法:
mvn help:effective-pom
を実行して、Mavenが実行するPOM全体を確認します。 test
(大文字と小文字を区別しない)を検索して、奇妙なものがあるかどうかを確認します。
mvn test -X
を実行して、デバッグ出力を取得します。これにより、maven-surefire-plugin
の構成に使用されるオプションが出力されます。出力をファイルにリダイレクトしてください!
ログには、次のように表示されます
[DEBUG] Configuring mojo 'org.Apache.maven.plugins:maven-surefire-plugin:2.15:test' with basic configurator -->
そして、その下のいくつかの行:
[DEBUG] (s) runOrder = filesystem
[DEBUG] (s) skip = false
[DEBUG] (s) skipTests = false
これらの値は、テストがスキップされないことを意味します。
プラグインの最新バージョンを使用していますか? ここをチェック 。お使いのバージョンではこのオプションがサポートされていない可能性があります。
Mavenは、テストをスキップするための2種類のパラメーターを知っています。
-Dmaven.test.skip=true
または
-DskipTests=true
surefire-plugin documentation は、まだ試したことのない最初のプラグインのみに言及しています。
そうではない -DskipTests=true
それはただ-DskipTests
surfireバージョン2.3を使用していることを考慮
だからあなたはそれを
mvn install -DskipTests
なぜ正しい答えがまだ投稿されていないのか分かりません。 SureFireの古いバージョンでは、テストをコンパイルするが実行しないフラグは-Dmaven.test.skip.exec
。
Surefireプラグインの次の構成を試してください
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.surefire.plugin}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>