テストをトリガーせずにmaven-release-pluginを実行するにはどうすればよいですか?
私が試してみました
-Dmaven.test.skip=true
そして
-DskipTests
そして
-DpreparationGoals=clean
...まだ機能しません。
はい、テストに合格しなかった場合はリリースすべきではありませんが、同僚に信頼できるテストを作成させることはできません。
-Darguments="-DskipTests"
は、必要なもの、またはpomでフォークされた実行を明示的に構成するものです。
-Darguments="..."
は分岐したMavenプロセスに引数を渡しますが、ここでは2つの異なるスイッチが使用されていることを認識することが重要です。 -DskipTests
は、mavenにテストを実行しないように強制しますが、テストはコンパイルされたままです(テストjarタイプに依存関係がある場合、これは重要です)。 -Dmaven.test.skip=true
は、mavenにテストをコンパイルさせないことを強制します。つまり、テストjarは生成されません。
したがって、-Darguments
を使用する必要がありますが、実行中のテストをスキップするにはskipTests
のみを使用し、コンパイルを停止するにはmaven.test.skip
を使用します。
統合テストを単にスキップしたい場合、これはそれを行います:
-Darguments="-DskipITs"
単体テスト全体をスキップするには、引数を使用します
-Dmaven.test.skip = true
ユニットテストをスキップしたい場合、これは解決します
mvn install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true
または、maven-surefire-pluginでskipTestsを定義できます
pom.xml
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
リリースプラグインを使用してテストを回避およびスキップするには、選択肢が多すぎます
例:mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare
-2つ目は、ビルド内のpom.xmlで次のような引数を実行することです。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.Apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.9.4</version>
</dependency>
</dependencies>
<configuration>
<skip>true</skip>
<skipTests>true</skipTests>
<preparationGoals>clean validate</preparationGoals>
<arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release-mode</releaseProfiles>
<tagNameFormat>TEST-@{project.version}</tagNameFormat>
</configuration>
</plugin>
2番目のメソッドが最初のメソッドをオーバーライドすることに注意してください。
最初に単一のアクションでリリースを準備し、次に作業ディレクトリのrelease.propertiesファイルを編集し、引数がある場合はexec.additionalArguments
プロパティを確認することをお勧めします。 exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode
のようになります。
リリースを実行できた後。
文字通り、テストのコンパイルまたは実行をトリガーするMavenプラグインはありません。 1つまたは複数のプラグインの実行をトリガーするのは、これらが目標を特定のフェーズにバインドしたときに、Mavenライフサイクルフェーズです。
そのため、テストを実行せずに1つのプラグインゴールを実行するだけで十分です。
mvn release:perform
またはプロジェクトのビルドとパッケージングと組み合わせます:
mvn clean package release:perform