具有持续交付的通用模块的Maven项目版本

时间:2014-11-08 09:19:58

标签: java maven-3

我们已经开始使用Maven和Teamcity工具为我们的Java Build实现Continuos Delivery,以实现CI和Build自动化。

我们有几个常见的jar作为独立的jar文件构建,并被Web模块使用。

这些常见模块的变更频率很高;我们已经开始采用各种论坛What is the Maven way for automatic project versions when doing continuous delivery?和本博客中讨论的方法 http://blog.xebia.com/2012/09/30/continuous-releasing-of-maven-artifacts/为所有常见的罐子使用Major.Minor.BugFix - $ {revision}。

修订版本在父POM中设置为本地开发的SNAPSHOT,如果是Teamcity版本,则设置为$ {BuildNumberCounter} - $ {SVNRepoRevisionNumber},例如: 1.0.0-10-233

对于需要使用jar并始终想要选择最新版本的Web模块,依赖关系范围定义为[1.0.0,2.0.0)。这似乎工作得很好;但老实说,我们还没有在愤怒中使用它,所以看看我们是否会遇到挑战。

我们直接面对的问题是,对于本地桌面开发,Webmodule中的依赖范围始终解析为最新编号的版本,而不是由开发人员创建的用于使用Web模块对公共jar进行本地测试的快照构建。我们认为开发人员能够在本地测试Web模块的常见jar变化是有效的。唯一可以实现的方法是通过提交更改和Teamcity生成新的编号版本,这是不理想的,因为它可能会破坏使用该公共jar的所有Web模块的构建。

想知道是否有人遇到类似的问题并且会有解决方案。

0 个答案:

没有答案