Maven 如果您不使用';没有具体说明吗?

Maven 如果您不使用';没有具体说明吗?,maven,maven-plugin,maven-central,maven-metadata,Maven,Maven Plugin,Maven Central,Maven Metadata,我认识到Maven并不总是使用最新版本的插件 例如,org.codehaus.mojo:sonar maven插件2.7版于10月19日发布,但10月23日,maven仍在使用2.6版(mvn sonar:sonar) 我甚至记得一些插件,其中最新版本是Maven决定使用的版本之上的几个小版本 是否有任何(中央)索引/列表/数据库可供Maven查找要使用的版本?如果是,在哪里可以手动访问?据我所知,这将回答您的问题 自动插件版本解析 当在POM中没有给出显式版本的情况下调用插件时 或者在命令行上

我认识到Maven并不总是使用最新版本的插件

例如,
org.codehaus.mojo:sonar maven插件
2.7版于10月19日发布,但10月23日,maven仍在使用2.6版(
mvn sonar:sonar

我甚至记得一些插件,其中最新版本是Maven决定使用的版本之上的几个小版本

是否有任何(中央)索引/列表/数据库可供Maven查找要使用的版本?如果是,在哪里可以手动访问?据我所知,这将回答您的问题

自动插件版本解析

当在POM中没有给出显式版本的情况下调用插件时 或者在命令行上,Maven 2.x用于选择最新版本 最新版本可以是发行版或 快照为了稳定性,Maven 3.x更喜欢最新版本 发布版本高于最新快照版本

考虑到自动化系统带来的不可复制构建的威胁 插件版本解析,此功能将按计划删除 就POM中的插件声明而言。Maven的用户 当检测到缺少插件版本时,x会发现它会输出警告,以鼓励向POM或POM添加插件版本 它的父POM之一。强制执行者规则requirePluginVersions可以是 用于检查POM中缺少的插件版本


对于未指定版本的命令行执行,Maven从GA(组ID/工件ID)Maven-metadata.xml文件中查找最新版本

例如:


如果您正在将Maven目标的命令行执行编码到您的构建中,您应该为这些目标指定一个版本,否则您的构建可能会随着插件的新版本发布而更改。

我知道这是一个古老的线程,但为了后代的利益和准确性:所有
pom.xml
都从逻辑上继承自。通过键入以下内容,您始终可以看到“real”
pom.xml
的外观:

mvn help:effective-pom
打印的结果
pom.xml
是超级pom、您的
pom.xml
的组合,当然还有混合中的任何父pom


超级POM由
org.apache.maven.model.superpam.defaultsuperpamprovider
类()提供。它加载的资源是
org/apache/maven/model/pom-4.0.0.xml
()。

最好是将使用过的插件的所有版本固定在公司/企业pom中。是的,这是正确的,但我们不能一次为所有项目更改它,所以我想跟踪Maven插件默认版本的变化。没有插件默认版本…?这不可能总是最新的。例如,mvn clean调用使用maven clean插件2.5,但2.6、2.6.1和3.0.0已经发布。这很好,但super POM不包含任何(默认生命周期)插件版本。至少在maven 2中,它包含:;向下滚动经过第一个XML毛球到第二个。然而,你关于它在Maven 3超级POM中缺失的观点是好的;我看看能不能找到。那很有趣。如果这个文档是针对Maven 3.X的,它肯定会回答我的问题。马文3肯定有这样的事情……是的,我看到我已经陷入了自满的状态,假设2.x超级POM继续下去了。Maven 3 super POM是由
org.apache.Maven.model.superpam.defaultsuperpamprovider
类()提供的。它加载的资源可以在这里找到:我希望这能回答我的问题。例如,当我现在使用Maven 3.3.9进行mvn编译时,需要Maven编译器插件2.3.2,但3.6.1是最新版本(11个更高版本)。