1

特定の品質しきい値が満たされた場合にのみ、Maven プロジェクトがアーティファクトをデプロイする継続的インテグレーションのパターンを考え出そうとしています。品質レポートを実行するためにソナーを使用していますが、実行する必要があるようです:

mvn clean install sonar:sonar && \
mvn deploy -DskipTests -DskipITs

(または、別のJenkinsビルドステップと同等です)。

これにはコードを 2 回ビルドする必要があるため、各ビルド ジョブ全体が継続的インテグレーションに対して長くなりすぎます。

次のようなワンライナーを実行すると:

mvn clean deploy sonar:sonar

Sonar が実行される前に、アーティファクトがリポジトリにデプロイされます。Maven から離れることなく、より良い解決策はありますか?

4

3 に答える 3

1

わかりました、私が最終的に使用した方法は、次のように 3 つの個別のビルド ステップです。

  • mvn クリーン インストール -DskipTests -DskipITs
  • mvnソナー:ソナー
  • mvn jar:jar デプロイ:デプロイ

これは、Maven マルチモジュール プロジェクトではうまくいくようです。Sonar が (BuildBreaker プラグインを介して) ビルドに失敗した場合、アーティファクトはデプロイされません。Sonar がパスした場合、Maven は Jar をプロジェクトに再アタッチしてデプロイします。

于 2013-09-10T13:33:18.447 に答える