这是一个最佳实践'问题
使用maven和jenkins构建项目。
目标项目发布版本是通过maven设置的,例如:
set-version -DnewVersion = 13.3.0
所以构建版本没有使用pom.xml中的version标签,在这种情况下,pom中的版本似乎没用......
构建我们的项目是否错误?有关于此的最佳做法吗?
答案 0 :(得分:1)
我认为现在很多人都没有在POM中使用该版本。您仍然可以不时地增加它以表示项目中的一些新纪元,但这更像是一种营销活动。
如果您计划进行持续交付,您会发现任何发布版本(包括您的手动方式)都会违反CD的一个基石:只有通过管道的工件才是可释放的。但是,在通过管道之前,您不知道它是否可以释放,因此您无法事先设置发布版本。最终您可能会发现自己只使用SNAPSHOT版本。当然,您必须使用带有时间戳的已解决的快照来引用该特定版本。
答案 1 :(得分:0)
POM文件中的版本号并非无用,但它肯定会受到一些压力,而许多组织转向持续交付的风格(因为你通过漏洞提交,分支,然后通过一些受膏分支,如develop
审查程度越来越高(CI,QA),您可能不一定拥有与SNAPSHOT
版本分开的发行版本。)
发布Maven项目的最佳做法是使用Maven Release Plugin。它将准备发布(例如13.3.0
),标记发布(13.3.0
),并准备下一个开发迭代(例如13.3.1-SNAPSHOT
)。在开发迭代期间SNAPSHOT
版本(例如13.3.1-SNAPSHOT
)散布在周围,不期望再现性。这些版本甚至可能不是VCS提交的,或者它们可能在以后可能仍然被压扁的分支上。因此,POM文件中的版本很有用,因为它总是声明您正在查看的版本(在VCS中)。使用Maven Release Plugin可以帮助您保证没有两个版本具有相同版本(例如13.3.0
)。
另请注意,如果您是distinguishing between build and consumer POMs,则后者用于依赖工件,而依赖项目需要表示版本号以匹配依赖项的POM文件。