8

SNAPSHOTアーティファクトをMavenリポジトリにデプロイするために、5つのモジュールを使用してMavenマルチプロジェクトのハドソンジョブを作成しました。テストに失敗することなく正常にビルドされる限り、問題ありません。ただし、次の要件を満たしたいと思います。

  • モジュールにテストが失敗した場合、ビルドは引き続きビルドを実行し、他のモジュールをテストする必要がありますが、黄色に変わります。使用-Dmaven.test.failure.ignore=trueは成功しますが、次の要件で失敗します。
  • モジュールでテストが失敗した場合、どのアーティファクトもMavenリポジトリーにデプロイしないでください。他のプロジェクトはこのプロジェクトのスナップショットに依存しており、それらのプロジェクトは失敗したテストがない最新のスナップショットのみを使用したいと考えています。
  • できれば、ハドソンレポートページ(モジュールごとの赤/黄/青のステータス、ビルドログエラーの色付けなど)を取得する無料のスクリプトの代わりに、ハドソンMaven統合を使用してください。具体的には、Mavenビルドを2回(最初のmvn test -Dmaven.test.failure.ignore=true、よりmvn deploy -DskipTests)実行することは、パフォーマンスの低下であり、ハドソンのレポートページを混乱させ、アトミックではないため、解決策ではありません(2番目のビルドでリポジトリから再度更新されます)。

これを達成する方法はありますか?

4

4 に答える 4

5

アーティファクトをMavenリポジトリにデプロイするというビルド後のオプションがあります。ビルドが不安定な場合でも[デプロイ]を選択しない場合は、テストが失敗した場合、何もデプロイされないことを意味します。-faeコマンド内と一緒に、物事はあなたの望む方法で動作するはずです

于 2011-03-17T16:41:45.823 に答える
2

多分あなたはハドソンのあなたの仕事でmvn-faeオプションを使うことを試みることができます-それは完全なビルドの後にのみmavenを失敗させます

于 2011-03-09T22:39:45.730 に答える
1

ビルド時間が問題にならない場合は、デプロイするためだけに別のジョブを作成することをお勧めします。このようなもの:

  1. 「mvn-faecleaninstall」を使用して、元のジョブ(「ビルドジョブ」と呼びましょう)を構成します
  2. 「mvndeploy」を使用して新しいジョブ(「deployjob」)を作成し、ビルドトリガーを構成しないでください
  3. 「ビルドジョブ」で、「ビルド後のアクション」の下にある「他のプロジェクトのビルド」オプションを有効にし、「デプロイジョブ」を実行するように設定します。

おそらく、同じワークスペースを使用するように両方のジョブを構成して、ビルド/デプロイプロセス全体の時間を節約することができます。

于 2011-03-15T20:14:14.103 に答える
1

Artifactoryをリポジトリマネージャーとして使用している場合は、 Hudson /JenkinsArtifactoryプラグインを使用してアーティファクトをデプロイできます。このプラグインは、すべてのテストがMavenビルドのすべてのモジュールに合格した場合にのみアーティファクトをデプロイします。

于 2011-03-16T15:22:52.743 に答える