为什么默认的maven使用这么旧版本的插件



我是Maven的新手,当pom.xml中没有定义版本时,我很难弄清楚Maven是如何决定使用哪个版本的插件(例如Maven编译器(的。

使用最新的maven版本3.8.1。创建了一个helloworld java程序并运行mvn-compile。它下载了以下版本:maven资源插件:2.6:resources(默认资源(maven编译器插件:3.1:compile(默认编译(

maven编译器插件:3.1于2013年4月发布。最新版本为3.8.1。为什么maven不使用最新版本,而我在pom中没有给出任何具体的内容?

与maven资源插件相同:2.6。此版本于2012年8月发布。最新版本为3.2.0。

我知道我可以在pom中定义这些插件的最新版本。但为什么默认的maven会使用这么旧的版本呢?我是否缺少任何配置?

您缺少配置,这意味着您必须通过pluginManagement定义适当的插件(所有插件及其版本(。

如果默认值会改变,我们会有很多项目失败。

我强烈建议定义此处给出的版本https://maven.apache.org/plugins/

通常,插件版本的定义是公司母公司的一项任务,让一个位置定义所有插件和默认配置。