2017-08-18 4 views
1

私はJenkinsのステージング機能を検討しています。私は速くて痩せた設定を考案したいと思います。MavenとJenkinsfile - 前の段階をスキップする

基本的には、ジェンキンスは、ビルドプロセスに分割し、ビルドの進行状況についての素晴らしい視覚的なフィードバックを提供するために、ステージの使用を推進しています。

のでJenkinsfile

stage("Build") 
bat("mvn compile") 

stage("Test") 
bat("mvn test") 

stage("Deploy") 
bat("mvn deploy") 

のようなものだこれはうまく動作しますが、deploytestは両方再び以前の段階から活動を行いますので、間違って感じています。 (変更なしによるコンパイルをスキップしますが)と(テスト中およびデプロイを実行)2回のテスト結果

は、このセットアップでは、私は3回を構築しています。私は、さまざまなスイッチを見つけることができますし、そのうちの一つは、ユニットテストをスキップするために動作しますが、コンパイルと依存関係解決の手順は関係なく、私は何をすべきかの起こる周りグーグル

私は、この場合には、速度とステージの間で選択する必要はありますか私は両方を持つことができますか?

私は意味:

stage("Resolve dependencies, build, test and deploy") 
bat("mvn deploy") 

はこれまでで最速のアプローチですが、それはジェンキンスさんに素敵な進捗テーブルを生成しません。

+1

[カスタムライフサイクル](https://developer.jboss.org/wiki/CreatingACustomLifecycleInMaven)を作成できます。 –

+0

「-DskipTests」を使用すると、_deploy_ステージでテストをスキップできます。アプリケーションが既にコンパイルされていることを自動的に検出する必要があります。 – StephenKing

答えて

0

増分もたらすためには、Gradleのがするように、あなたはtakari-lifecycle Mavenプラグインを使用することができますMavenの段階で構築します。

プラグインが適用されると、すべての利点が得られます。それはあなたのメインのソースコードとテストのソースコードからコンパイルを避けることができます前段階とDeploy段階でコンパイルされたが、私は-DskipTestsを追加することをお勧めしてテストを再度実行されますので、あなたの例では、mvn testを実行しますTestステージは、コンパイルを避けることができます。

関連する問題