正如标题所说.最近,当我想在我的POM配置中使用发布标志时,我发现了这一点.为什么Maven使用如此旧的版本?

我应该补充一句,我使用的是最新的Maven版本(3.8.6).

推荐答案

为什么Maven使用如此旧的版本?

一言以蔽之:可再生性.

更改插件版本号可能会导致影响Maven构建的行为发生变化.现在,如果开发人员在他们的POM文件中更改了一个显式的插件版本,我们有理由认为他们是有意这样做的.无论哪种方式,改变的决定都是他们的.

另一方面,当人们依赖默认的插件版本号时,他们不会期望它们会根据安装的Maven的确切版本而有所不同.如果一些旧项目的构建说明要求他们安装过时版本的Maven,他们会不高兴的.如果安装新的Maven版本来(比方说)修补安全问题also更改默认插件版本,他们会不高兴的.出乎意料地 destruct 了他们的构建.

因此,Maven团队对更改默认插件版本和默认属性非常谨慎.


无论哪种方式,解决方案都掌握在你自己手中.如果您想使用任何插件的更新版本,只需在项目的父POM文件中放置一个显式的插件版本即可.

Java相关问答推荐

即使我正在使用并发方法,使用Javascript的应用程序也会继续冻结'

无法传递消费者<;>;实例

如何才能使我的程序不会要求两次输入?

暂停计时器

更新AWS凭据

使用多个RemoteDatabase对象的一个线程

在Frege中,我如何将一个字符串安全地转换为一个可能的Int?

在Ubuntu 23.10上使用mp3创建JavaFX MediaPlayer时出错

A.ForEach与For(类型a:集合)

判断重复的两个二维表算法?

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

活泼的一次判断成语,结果中等

java.lang.ClassCastException:com.google.firebase.FirebaseException无法转换为com.google.fire base.auth.FirebaseAuthException

try 添加;按流派搜索;在Web应用程序上,但没有;I don’我不知道;It’这个代码错了

[Guice/MissingImplementation]:未绑定任何实现

如何在Java上为循环数组从synchronized迁移到ReentrantLock

如何使用java区分以下结果

将天数添加到ZonedDateTime不会更改时间

如何在 BlueJ 中自动关闭控制台

如何使 JavaFx 中的表视图响应式?