web-dev-qa-db-ja.com

テストをスキップするmaven-release-pluginを取得するにはどうすればよいですか?

テストをトリガーせずにmaven-release-pluginを実行するにはどうすればよいですか?

私が試してみました

-Dmaven.test.skip=true 

そして

-DskipTests 

そして

-DpreparationGoals=clean

...まだ機能しません。

はい、テストに合格しなかった場合はリリースすべきではありませんが、同僚に信頼できるテストを作成させることはできません。

174
Steven

-Darguments="-DskipTests"は、必要なもの、またはpomでフォークされた実行を明示的に構成するものです。

397
bmargulies

-Darguments="..."は分岐したMavenプロセスに引数を渡しますが、ここでは2つの異なるスイッチが使用されていることを認識することが重要です。 -DskipTestsは、mavenにテストを実行しないように強制しますが、テストはコンパイルされたままです(テストjarタイプに依存関係がある場合、これは重要です)。 -Dmaven.test.skip=trueは、mavenにテストをコンパイルさせないことを強制します。つまり、テストjarは生成されません。

したがって、-Dargumentsを使用する必要がありますが、実行中のテストをスキップするにはskipTestsのみを使用し、コンパイルを停止するにはmaven.test.skipを使用します。

40

統合テストを単にスキップしたい場合、これはそれを行います:

-Darguments="-DskipITs"
21
David Gilks

単体テスト全体をスキップするには、引数を使用します

-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>
3
Mfuon Leonard

リリースプラグインを使用してテストを回避およびスキップするには、選択肢が多すぎます

  • 最初の方法は、-Dargumentsを指定して、cliの引数としてリリースの目標またはフェーズに渡すことです。

例: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のようになります。

リリースを実行できた後。

2
idriss Eliguene

文字通り、テストのコンパイルまたは実行をトリガーするMavenプラグインはありません。 1つまたは複数のプラグインの実行をトリガーするのは、これらが目標を特定のフェーズにバインドしたときに、Mavenライフサイクルフェーズです。

そのため、テストを実行せずに1つのプラグインゴールを実行するだけで十分です。

mvn release:perform

またはプロジェクトのビルドとパッケージングと組み合わせます:

mvn clean package release:perform
0