4

Mavenプラグイン管理で奇妙に聞こえる何かを見つけました。

サイト生成に取り組んでいる間、特定の機能を動作させるために、特定のバージョンのMavenサイトプラグインを使用したいと思いました。このプラグインのバージョン2.0.1を使用したいとします。

次のコマンドを使用してプロジェクトのサイトを生成するために、POMのレポートセクションを使用する場合:

mvn site

これはうまく機能します。使用したプラグインのバージョンは、希望どおり2.0.1です。これは、サイトプラグインを構成する私のPOMからの抜粋です。

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>2.0.1</version>
        </plugin>
    </plugins>
</reporting>

ここで、ビルドライフサイクルの特定のフェーズ、たとえば、prepare-package(およびゴールステージ)中にサイトを生成する場合は、セクションに次のセクションを追加します。

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>

        <executions>
            <execution>
                <phase>prepare-package</phase>
                <goals>
                    <goal>stage</goal>
                </goals>
            </execution>
        </executions>
     </plugin>
</plugins>

そして、ここで私はスーパーPOMからのMavenサイトプラグインバージョンで立ち往生しています。2.0-ベータ-7。本当にバージョン2.0.1を使用したいという構成を追加しようとしても、2.0-beta-7を使用します。レポートセクションで使用される構成はビルドセクションにも適用されることになっているため、セクションにバージョンを追加しようとしました。しかし、これも機能しません。

多分私は何かを逃しました、そして私が間違っているなら私を訂正します、しかしこれはバグのように見えます。ビルドプロセス中に使用されるプラグインのバージョンを修正する必要がMaven側にありますか?

ありがとう!

4

2 に答える 2

7

pom で pluginManagement セクションを定義すると、任意のプラグインに使用されるバージョンを宣言できます。これにより、スーパー POM から継承されたバージョンがオーバーライドされます。

例えば:

<pluginManagement>
  <plugins>
    <plugin>
      <artifactId>maven-site-plugin</artifactId>
      <version>2.0.1</version>
    </plugin>       
  </plugins>
</pluginManagement>

pluginManagement の構成の背景については、ドキュメントを参照してください。

于 2009-08-27T15:25:18.480 に答える
1

プラグインのグローバル バージョン番号を設定するには、「 pluginManagement 」セクションを使用する必要があると思います。

于 2009-08-27T15:24:36.923 に答える