首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven 3:必须指定插件版本,为什么?

maven 3:必须指定插件版本,为什么?
EN

Stack Overflow用户
提问于 2013-02-06 21:49:10
回答 1查看 295关注 0票数 2

从maven 3开始,强烈建议指定插件的版本。例如,指定maven-compiler-plugin (为了指定java目标版本),如果没有指定版本,maven会报错:

代码语言:javascript
复制
[WARNING] Some problems were encountered while building the effective model for com.example:ex1:jar:0.0.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 20, column 12
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.

然而,我可以理解其中的逻辑:

如果我没有指定maven编译器插件,我将得到一个默认版本,即maven 3.0.4的2.3.2版本。这意味着在正常情况下,您将获得某个插件的默认版本。

问题是:插件的默认版本会随时间变化吗?我想是这样的,例如maven 4.x可能会使用较新的默认版本的编译器插件。

如果是这样,那么强制用户指定版本有什么好处?在许多情况下,这将是不可预测的,只看pom.xml,提前知道将使用哪个maven版本,也就是说,将使用哪个maven插件版本。

我不明白这背后的逻辑。因此,人们应该总是被迫指定使用中的每个插件的版本(这将是相当麻烦的)。

EN

回答 1

Stack Overflow用户

发布于 2013-02-06 22:12:51

默认版本的插件是Maven发布包的一部分。因此,它们在不同的版本中是不同的。这意味着切换Maven的版本可能会给你带来一个令人讨厌的惊喜。Maven开发社区认为这是一个糟糕的计划;您应该能够在不损失构建可重复性的情况下更改Maven的次要版本(当然,除了bug)。所以,我们放了这个警告,温和地鼓励你锁定你的插件版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14730672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档