2016-07-06 7 views
1

一般:コマンドラインからオーバーライド依存バージョン(プラグイン依存関係)を使用してmavenプラグインを実行する必要があります。プラグインはプロジェクトpomでは定義されません。実行時に使用する依存バージョンをコマンドラインからオーバーライドします。

コンクリート:チームシティビルドのステップとしてmaven-checkstyle-pluginを実行する必要があります。このプラグインはプロジェクトpomには定義されません。

mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check -Dencoding=UTF-8 

しかし、私は hereがあったとして、最新 checkstyleでプラグインを実行する必要があります。私は、次のコマンドラインを使用します。

POMのXML:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.17</version> 
</plugin> 

コマンドライン:

mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check 

POMのXML:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <dependencies> 
     <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.0</version> 
     </dependency> 
     </dependencies> 
    </plugin> 

コマンドライン:

? 
+0

なぜpomで定義しないのですか?意味がない...コマンドラインで依存バージョンを上書きすることはできません。なぜこれが必要ですか? – khmarbaise

+0

これはおそらくできません。可能であれば、ビルド前のステップを実行し、ターゲットの 'pom.xml'ファイルのコピーを作成し、このプラグインの設定を' pluginManagement'セクションに追加してから、この代替のpomファイルのビルドを実行します'-f'オプション(例えば、' mvn -f拡張-pom.xmlのクリーンインストール ')です。より良い解決策は、すべてのMavenプロジェクトで使用される、CI関連のチェック/要件を配置する場所であるエンタープライズMEMの親POMを持つことです。 –

答えて

0

ベストプラクティスは、設定でMaven profileを作成し、次にCIでビルドするときにこのプロファイルを有効にすることです。

例プロファイル:

<profiles> 
<profile> 
    <id>ci</id> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <dependencies> 
      <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.0</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 
</profiles> 

例チームシティーでそれを有効にする方法:mvn checkstyle:check -Pci

通常executionセクションはプラグインの目的は、ある時に、通常のビルドの一部として自動的に実行するために、プロファイルの設定に追加されます例えば、mvn install -Pciを介してciのプロファイルが有効になっている場合に限ります。

関連する問題