Maven 如何解析要执行的插件版本?
How does Maven resolve a version of a plugin to execute?
我的本地存储库中有几个 maven-dependency-plugin
的下载版本。在放置在 org/apache/maven/plugins/maven-dependency-plugin/
中的元数据文件中,列出了从 2.0-alpha-1
到 2.10
的版本。
版本 2.10
设置为 release
和 latest
.
尽管当 dependency:get
作为 CLI 的独立目标执行时,Maven 使用版本 2.1
。这是插件的较少下载版本。此外,如果从本地存储库中删除该版本,Maven 会再次下载它。
使用 Maven 3.0.4。
问题:当没有明确指定时,Maven 如何确定将使用哪个版本的插件?
当从命令行执行插件的目标而不明确提供其版本时,Maven 将使用其最新版本,但声明为所有 Maven 构建的 super pom, that is, the implic parent pom 一部分的插件除外。
在这种情况下,maven-dependency-plugin
是父 pom 中声明的少量(且递减的)插件集的一部分,其版本 2.1
是 specified 直到 Maven 版本3.0.5
,从那个版本开始更新到2.8
.
版本
此外,Maven 通过 default lifecycle bindings 解析插件版本,具体取决于 pom.xml
文件中声明的 packaging
选项(尽管不适用于命令行执行)。
我的本地存储库中有几个 maven-dependency-plugin
的下载版本。在放置在 org/apache/maven/plugins/maven-dependency-plugin/
中的元数据文件中,列出了从 2.0-alpha-1
到 2.10
的版本。
版本 2.10
设置为 release
和 latest
.
尽管当 dependency:get
作为 CLI 的独立目标执行时,Maven 使用版本 2.1
。这是插件的较少下载版本。此外,如果从本地存储库中删除该版本,Maven 会再次下载它。
使用 Maven 3.0.4。
问题:当没有明确指定时,Maven 如何确定将使用哪个版本的插件?
当从命令行执行插件的目标而不明确提供其版本时,Maven 将使用其最新版本,但声明为所有 Maven 构建的 super pom, that is, the implic parent pom 一部分的插件除外。
在这种情况下,maven-dependency-plugin
是父 pom 中声明的少量(且递减的)插件集的一部分,其版本 2.1
是 specified 直到 Maven 版本3.0.5
,从那个版本开始更新到2.8
.
此外,Maven 通过 default lifecycle bindings 解析插件版本,具体取决于 pom.xml
文件中声明的 packaging
选项(尽管不适用于命令行执行)。