web-dev-qa-db-ja.com

Mavenプラグインのバージョンをアップグレードするにはどうすればよいですか?

私はmaven-ear-pluginバージョン2.3.1を使用しています-新しいバージョンが利用可能であることを知っています: http://maven.Apache.org/plugins/maven-ear-plugin/

最新バージョンにアップグレードする方法がわかりませんか?

28
johnstok

デフォルトのプラグインバージョンはSuperPOMから継承されており、mvn help:effective-pomで確認できます。

そこで提供されているバージョンを上書きする場合は、これをPOMに追加します。

<project>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
  </build>
</project>

バージョンを必要なものに置き換えます。

15
andri

これはすでに「承認された答え」を得ていますが、これがあります AWESOMEバージョンプラグイン 終わりのないバージョンメンテナンスの問題を処理します。

これらの怠惰な人々のために、ここにその目標のいくつかがあります:

  • versions:display-dependency-updatesは、プロジェクトの依存関係をスキャンし、新しいバージョンが利用可能な依存関係のレポートを生成します。
  • versions:display-plugin-updatesは、プロジェクトのプラグインをスキャンし、新しいバージョンが利用可能なプラグインのレポートを生成します。
  • versions:display-property-updatesはプロジェクトをスキャンし、アーティファクトのバージョンを制御するために使用されるプロパティと、新しいバージョンが使用可能なプロパティのレポートを生成します。
  • versions:update-parentは、プロジェクトの親セクションを更新して、使用可能な最新バージョンを参照するようにします。たとえば、企業ルートPOMを使用している場合、この目標は、企業ルートPOMの最新バージョンを使用していることを確認する必要がある場合に役立ちます。
  • versions:update-propertiesは、特定の依存関係の利用可能な最新バージョンに対応するように、プロジェクトで定義されたプロパティを更新します。これは、一連の依存関係をすべて1つのバージョンにロックする必要がある場合に役立ちます。
  • versions:update-child-modulesは、プロジェクトの子モジュールの親セクションを更新して、バージョンが現在のプロジェクトのバージョンと一致するようにします。たとえば、集約するプロジェクトの親でもあるアグリゲーターpomがあり、子と親のバージョンが同期していない場合、このmojoは子モジュールのバージョンを修正するのに役立ちます。 (バージョンの不一致のためにプロジェクトが非常にひどく壊れてビルドできない場合、この目標を実行するために-Nオプションを指定してMavenを呼び出す必要がある場合があることに注意してください)。
  • versions:lock-snapshotsは、pomですべての-SNAPSHOTバージョンを検索し、それらをその-SNAPSHOTの現在のタイムスタンプバージョンに置き換えます。 -20090327.172306-4
  • versions:unlock-snapshotsは、タイムスタンプでロックされたすべてのスナップショットバージョンをpomで検索し、それらを-SNAPSHOTに置き換えます。
  • versions:setを使用して、コマンドラインからプロジェクトのバージョンを設定できます。
  • versions:use-releasesは、リリースされたすべての-SNAPSHOTバージョンをpomで検索し、対応するリリースバージョンに置き換えます。
  • versions:use-next-releasesは、新しいリリースであるすべての非SNAPSHOTバージョンをpomで検索し、それらを次のリリースバージョンに置き換えます。
  • versions:use-latest-releasesは、新しいリリースであるすべての非SNAPSHOTバージョンをpomで検索し、それらを最新のリリースバージョンに置き換えます。
  • versions:use-next-snapshotsは、新しい-SNAPSHOTバージョンであるすべての非SNAPSHOTバージョンをpomで検索し、それらを次の-SNAPSHOTに置き換えます。バージョン。
  • versions:use-latest-snapshotsは、新しい-SNAPSHOTバージョンであるすべての非SNAPSHOTバージョンをpomで検索し、それらを最新の-SNAPSHOTに置き換えます。バージョン。
  • versions:use-next-versionsは、新しいバージョンであるすべてのバージョンをpomで検索し、それらを次のバージョンに置き換えます。
  • versions:use-latest-versionsは、新しいバージョンであるすべてのバージョンをpomで検索し、それらを最新バージョンに置き換えます。
44
Pat

プラグインのバージョンがどのように選択されるか、およびスーパーポムのプラグインバージョンについての説明は、詳細に説明されています ここ

実際、現在選択されている答えは完全に正しくありません。そのはず

<project>
  <build>
   <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
   </pluginManagement>
  </build>
</project>

理由を説明しました ここ

「通常のプラグインセクションでは、バージョンとデフォルト構成を定義することもできます。これは混乱の原因です。ここでプラグインバージョンとデフォルト構成を定義することは技術的に有効ですが、これに従うとpomを簡単に理解できます。ガイドライン:

プラグインブロックが実行を定義していない場合(したがって、ライフサイクルで何かを実行するようにMavenをバインドしている場合)、そのブロックをpluginManagmentに配置します。 "

8
Brian Fox

一部のMavenプラグインはMavenバージョンに制限されています。たとえば、通常、このあたりのプロジェクトではMaven 2.0.4を使用しますが、これはwarプラグイン2.0.2の使用に制限されています。これはオーバーレイで機能します。ただし、Maven 2.0.9が使用する2.1アルファは使用しないため、手動でダウングレードする必要がありました。 Mavenは、特に指示がない限り、プラグインのバージョンに応じて可能な限り最新バージョンのプラグインを使用しようとします。

3
MetroidFan2002