2011-11-07 19 views
4

複数の重なったプロファイルを持つMavenプロジェクトがあります。私はすべてのビルドの始めにアクティブなプロファイルを表示したい。ビルド中にMavenプラグインが複数回実行される

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-help-plugin</artifactId> 
      <version>2.1.1</version> 
      <executions> 
       <execution> 
        <id>display-active-profiles-at-start-of-build</id> 
        <phase>validate</phase> 
        <goals> 
         <goal>active-profiles</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

問題は、プラグインがビルド中に複数回実行していることである:(validate段階中)ビルドの開始時に

  1. だから私はpom.xml <build>セクションに次のように置きます。
  2. jar:jarが実行されたとき。
  3. source:jar/pre-integration-test(?)のあと、Jettyを起動しているとき。

<phase>initialize</phase>と同様の結果です。これをビルドの始めにのみ実行する方法はありますか?

答えて

2

あなたのプラグインの1つがmojoの一部として別のライフサイクルを実行しているため、何回か実行される理由があります。

source:jarits documentationで指定されているとおりです。

が実行される前に、ライフサイクルフェーズgenerate-sourcesの実行を呼び出します。

jar:jar通常はありませんが、別のライフサイクルを停止する別のプラグインがある可能性があります。

ソースjarが生成される場合は、通常、別のライフサイクルは必要ありません。プラグインの作者はjar-no-fork mojoを実装することでこれを認識します。

あなたはここで説明する手順に従って、デフォルトjarモジョのためにそれを代えることができる - >http://maven.apache.org/plugins/maven-source-plugin/usage.html

+0

感謝。これはフロントエンド/ npm/bower/emberのステップが一回だけ実行されると高価なので、ビルドから深刻な時間を削るかもしれません。 –

関連する問題