HDa*_*ave 2 java plugins build-process maven-2 build
由于版本v2.3.2中修复的maven-compiler-plugin v2.0.2中的错误,我只丢失了2个小时的时间.
显然,如果您没有指定Maven编译器插件的版本,Maven 2.2.1只会为您提供v2.0.2.
我们的项目使用15个以上的Maven插件.其中一些我们想要确定某个版本,但其中大部分(如编译器插件)我们想升级而不必考虑它.
有没有办法使用Maven自动执行此操作,或者我们是否必须指派某人每月研究可能的Maven插件升级,然后在我们的父POM中更改PluginManagement版本号的费力不讨好的任务?
显然,如果您没有指定Maven编译器插件的版本,Maven 2.2.1只会为您提供v2.0.2.
是的,从Maven 2.0.9(参见MNG-3395)开始,为了构建可重复性,核心和常见插件的版本在超级POM和Maven禁用插件版本发现中得到修复.
我们的项目使用15个以上的Maven插件.其中一些我们想要确定某个版本,但其中大部分(如编译器插件)我们想升级而不必考虑它.
如上所述,这是一个坏主意.由于某些插件更新,您根本不希望maven构建突然开始失败.换句话说,你应该使用固定版本而不这样做是一种不好的做法.实际上,Maven 3.0推广了这种做法,如果你不这样做就会发出警告.在3.1中,您必须指定一个版本(参见MNG-1968).
就个人而言,我使用Maven Enforcer插件及其Require Plugin Versions规则来强制执行此操作(这意味着如果不锁定插件版本,构建将失败).
有没有办法使用Maven自动执行此操作,或者我们是否必须指派某人每月研究可能的Maven插件升级,然后在我们的父POM中更改PluginManagement版本号的费力不讨好的任务?
正如所建议的,版本Maven插件的目标是允许检查是否有更新版本的插件,依赖项等(并注意-cpu在Maven 3.0中已弃用,并将从未来版本中删除).
但真正的问题是:你为什么总想使用终极版本?IMO,没有充分的理由这样做,只有在有东西需要修复的情况下才能进行升级("如果没有破坏,请不要修复它").
底线:使用固定插件版本并忘记自动更新,版本范围等.
您可以将类似于versions-maven-plugin的内容绑定到主构建,以便获得每个构建的报告,以显示您的插件是否是最新的.
有关详细信息,请参阅此链接:显示插件更新
如果您想获得想象力,请让您的CI服务器通过脚本运行您的maven构建的输出,以检查[WARNING]发出新版本信号的日志条目,然后通过电子邮件或其他通知通知您团队的相关成员.
我今天第二次写这个:
尝试使用-cpu标志.输出来自mvn -help:
usage: mvn [options] [<goal(s)>] [<phase(s)>]
Options:
-cpu,--check-plugin-updates Force upToDate check for any
relevant registered plugins
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2498 次 |
| 最近记录: |