我有一对夫妇的被开发并在不同的分支发布的项目,即发展和释放 Maven的最佳实践。这个过程工作得很好,但不幸的是它有一些缺点,我一直在想,是否有更好的版本控制方案适用于我的情况。的版本不同的分支[开发,QA /预发行]
主要开发发生在开发分支(即Subversion 主干,但没关系),开发团队在哪里进行更改。在构建和打包工件之后,Jenkins将它们部署到Maven存储库和开发集成应用程序服务器。这是一个发展的快照和基本上仅仅是包含在一个共同的分支的所有开发功能feature branch:
<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>D.16-SNAPSHOT</version>
当一个特定的业务变化进行,由QA团队的要求,这一个变化,然后被合并到发布分支(分支/发布)。詹金斯部署导致神器QA应用服务器:
<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>R.16-SNAPSHOT</version>
然后有一个释放其通过行家释放小插件发生在软件发布分支版本(这将创建快速bug修复维护标签/支)。 (R.16-SNAPSHOT => R.16)
开发和发布分支目前分别版本化为D.16-SNAPSHOT和R.16-SNAPSHOT。这允许分离Maven仓库中的工件,但是会依赖于标准Maven版本风格的不同Maven机制产生问题。这也打破了OSGI版本。
现在,你会如何命名和版本的Maven工件在这样的计划?有没有更好的办法?也许我可以对maven结构进行一些更改,而不是简单地更改版本和命名方案?但我需要将开发和QA(发布)SCM分支分开。
'开发'/'生产'的maven分类是否是一个合理的选择?
<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>16-SNAPSHOT</version>
<classifier>D</classifier>
请看http://stackoverflow.com/q/11413624/7581。看起来最好的方式是拥有像16-R-SNAPSHOT和16-D-SNAPSHOT这样的版本。不要使用分类器。 – itsadok