2016-10-13 4 views
0

ビルドのフェーズに関係なく、プロジェクトのMavenビルドごとに1つのMavenプラグインゴール(jacoco:dump)を実行したいと思います。最後に1つのMavenプラグインゴールを実行する

実装するひとつのアイデアは、すべてのビルド時に実行するためにjacoco:dump goalをコンパイル・フェーズにリンクすることですが、最後のフェーズの最終目標としてダンプを実行することはできません。

実行順序

validate -> compile -> (any other phase and plugin goal execution) -> jacoco:dump 

私はmvn verifyでビルドする場合、jacoco:dumpは、検証フェーズの後に実行することができるよう、 mvn compileでビルドすると、jacoco:dumpはコンパイルフェーズ後に実行できます。

この問題をMavenで解決する方法はありますか?

答えて

0

解決策は簡単ですが効果的です。プラグインのゴールは、コマンドラインから直接プロジェクトpomに設定することなく実行できます。 official documentationで述べたように、彼らは与えられた順に実行されるコマンドラインから複数の目標を実行し、そうするとき、私は、コマンドの末尾にjacocoプラグインを配置する必要があります:

mvn compile org.jacoco:jacoco-maven-plugin:0.7.7.201606060606:dump sonar:sonar 

例最初のコンパイル上記jacoco:dumpを実行してからsonar:sonar

2

一ついただきありがとうございます(ハック)のアプローチは、プロパティとして毎回相を渡すことであろう。ような何か:

<execution> 
    <id>jacoco</id> 
    <phase>${phase}</phase> 
    <goals> 
     <goal>dump</goal> 
    </goals> 
    </execution> 

mvn compile -Dphase=compileまたはmvn test -Dphase=testなどおそらくない最もエレガントなソリューションが、実装するのは簡単でコール。

+0

ありがとうございます。プラグインの目標を直接使用するとどうなると思いますか? 'mvn test jacoco:dump'と同様です。 [ここ](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Build_Lifecycle_Basics)に記載されているように、実行順序はコマンドラインで与えられたものなので、 jacoco:dump'を実行した後に、解決策があるかもしれません。どう思いますか? – gvdm

+1

はい、それは良く聞こえます! – Revive

関連する問題