3

<build> タグでプラグインを定義し、これを自分のサイト コマンドで使用したい場合、どうすればよいですか? <reporting> タグ内でプラグインを再度定義する必要がありますか?

そして、おそらく build タグ内で行った設定で、reporting タグでも行いたいと思っている設定はどうですか? (たとえば、2 つのライフサイクルでプラグインを使用するためだけに、構成ファイルの場所を 2 回指定したくありません)

例: build タグで checkstyle プラグインを定義し、使用するルールのカスタムの場所を構成します。これは、ルールが jar にパックされているため、依存関係として定義できるためです。レポートタグでそれを行うと、これは不可能です。しかし、surfire が checkstyle のレポートを生成できるように、レポート タグでもこのプラグインを使用する必要があります。そのため、レポート タグ内でもプラグインを定義する必要があります。

ここで何か完全に間違っているのかもしれませんが、それ以外の方法でそれを行う方法がわかりません。私が気に入らないのは、pom (ビルドタグとレポートタグ) に 1 つのプラグインが 2 回あることです。

誰かが私のソリューションが問題ないことを確認したり、より良い方法をアドバイスしたりできることを願っています.

どうも

クク

4

2 に答える 2

4

通常、maven プラグインは、定義時に特定のライフサイクル フェーズでの実行にバインドされます。プラグイン自体がこれがどのライフサイクル フェーズであるかを指定しますが、特別なニーズがある場合はこれを変更できます。

マルチモジュール ビルドを使用している場合は、共通の親 pom で必要なすべてのパラメーターを含む一連のプラグインを定義できます。これは通常、ビルド内のすべてのサブモジュールに対して実行されます。これが発生したくない場合は、次のように (親 pom で) 定義できます。

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
            <skip>true</skip>
       </configuration>
   ... More plugin cofniguration stuff ...
 </plugin>

1 つ以上のネストされたモジュールでこのプラグインを有効にしたい場合は、次のように言えます。

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
            <skip>false</skip>
       </configuration>
   ... Maybe Configuration ....
 </plugin>

その特定のモジュールで。親定義から継承されたデフォルト パラメータを再設定するかどうかを選択できます。

私はこれがあなたが探しているものだと思いますか?

于 2009-02-12T10:30:33.067 に答える
2

KRosenvoldの回答に加えて、<pluginManagment>セクションでプラグインを宣言することで構成を最小限に抑えることもできます。おそらく、継承チェーンの最上位のpomで、プラグインの使用を宣言している他のすべての場所でプラグインのバージョンを指定することを省略できます。 。

親ポン:

<pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-1</version>
        </plugin>
    </plugins>
<pluginManagement>

チャイルドポン:

<plugins>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
    </plugin>
</plugins>
于 2009-02-16T17:55:24.387 に答える