2

私のローカルリポジトリには、maven-dependency-pluginのダウンロードバージョンがいくつかあります。 から2.10にバージョンorg/apache/maven/plugins/maven-dependency-plugin/のメタデータファイルがリストされています。
バージョン2.10は、releaselatestと設定されています。Mavenは実行するプラグインのバージョンをどのように解決しますか?

dependency:getがCLIからスタンドアロンゴールとして実行されても、Mavenはバージョン2.1を使用します。これは、ダウンロードされていないバージョンのプラグインです。さらに、バージョンがローカルリポジトリから削除された場合、Mavenはそれを再度ダウンロードします。

Maven 3.0.4が使用されます。

質問:明示的に指定されていないときに使用するプラグインのバージョンをMavenがどのように判断するのですか?

答えて

1

バージョンを明示的に指定せずにコマンドラインからプラグインのゴールを実行すると、Mavenはsuper pomの一部として宣言されているプラ​​グインを除いて最新のプラグインを使用します。つまり、すべてのMavenビルドのimplic parent pomです。この場合

maven-dependency-pluginバージョン2.1は、そのバージョンからその後にそれがバージョンにアップデートされている、Mavenのバージョン3.0.5までspecifiedされた親POMで宣言されたプラグインのほとんど(及び減少)セットの一部であります2.8

また、Mavenはpom.xmlファイルで宣言packagingオプション(ただし、コマンドラインの実行には適用されません)に応じて、default lifecycle bindingsを経由してプラグインのバージョンを解決します。

+1

とにかくpluginManagementでプラグインのバージョンを定義してください。スーパーPOMなどには依存しません。 – khmarbaise

関連する問題