2016-04-26 40 views
2

プロジェクトがある瞬間、mightymouseと呼ぶことができます。 Mightymouse POMはmightymouse-webmightmouse-backendのマルチモジュールプロジェクトです。マルチモジュールMavenプロジェクトでテストエラーが発生した場合、Jenkinsビルドに失敗します

両方のサブモジュールにテストがあります。私の状況では、mightymouse-webプロジェクトが最初にコンパイル、テスト、パッケージ化、インストール、デプロイされます。その後-backendプロジェクトが進行し、integration-testステージの間だけ失敗します。 (まだ、それはまだdeployの段階に進みます)。

mvn clean deployを実行するJenkinsジョブがセットアップされています。

質問:Mavenがテストに失敗したモジュールのdeployステップまで進んでいるのを防ぐにはどうしてですか?デフォルトでは

+0

アグリゲータ 'mightymouse'で' mvn clean deploy'を実行します。そうですか?もし私がなぜ 'ウェブ'が最初に作られたのだろうか? 'web'は' backend'からの依存関係を使いませんか? POMのいくつかの関連部分とビルド結果を確認できますか? –

+1

これは単なる例であり、この場合バックエンドはウェブに依存していると言うことができます。 – monksy

+0

これは本当の問題ではないということですか?ただの場合の質問...? –

答えて

1

は、Mavenのマルチモジュールのビルドもfail-fast option

--fail-fast使用しています - デフォルトの動作を - モジュールのビルドが失敗したときに、デフォルトでは、すぐに

また、全体的なビルドを停止しますtestFailureIgnoreオプションを使用して統合テストが失敗するとすぐにmaven-failsafe-pluginが失敗する

これをtrueに設定すると、テスト中にエラーを無視します。その使用は推薦されませんが、機会には非常に便利です。
ユーザープロパティmaven.test.failure.ignore
デフォルトfalse

maven-surefire-pluginは単位testingsためthe sameを持っていること。

したがって、デフォルトでは、テストが失敗すると(ユニットテストまたは統合テスト)、すぐにマルチモジュールビルドを停止し、それ以上のモジュールはビルドされず、それ以上のフェーズは呼び出されません。デフォルトでtrueにしかし

、Mavenのジェンキンスジョブ(とないMavenを呼び出すフリースタイルジェンキンスジョブ)set this optionので、ビルドが失敗しないでしょうジョブがUNSTABLEに設定していないことだろうが、それは、上の維持および展開しますSUCCESSFUL(それでも配備中)このように

、あなたはあなたにジェンキンス仕事であなたのMavenの呼び出しを変更することもできますので、ジェンキンスのデフォルト設定をオーバーライドし、要件を満たす

mvn clean deploy -Dmaven.test.failure.ignore=false 

関連する問題