在以下多项目情况下,版本控制和发布管理的最佳实践是什么?
项目结构
- 全球父母
- 父项目(版本:1.0-SNAPSHOT)
- 子项目 1(与父项目相同)
- 子项目 2(与父项目相同)
- 子项目 3(与父项目相同)
- 子项目 4(与父项目相同)
- …</li>
- 父项目(版本:1.0-SNAPSHOT)
我只想为父项目和所有子项目设置一次版本,因为项目的每个部分都必须具有相同的版本。
我还想要的是,用 continuum/maven 发布项目。
当前的“坏”解决方案:
通常一个简单的方法应该是在父 pom 中设置版本并在每个孩子中说“来自父母的最后一个版本”,但这不适用于 maven <3.1(参见此处)[http://jira.codehaus.org/browse/ MNG-624] 现在我在每个子项目中设置父项目的版本,并且对于每个版本,我必须更改所有子项目和父项目的版本。
例子:
家长
<groupId>com.test</groupId>
<artifactId>com.test.buildDefinition</artifactId>
<version>1.0-SNAPSHOT</version>
孩子
<parent>
<groupId>com.test</groupId>
<artifactId>com.test.buildDefinition</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.test</groupId>
<artifactId>com.test.project</artifactId>
<version>${parent.version}</version>
如果我现在想使用 Continuum 发布我的项目,我使用以下顺序来发布它:
- 父项目
- 儿童项目 1
- 儿童项目 2
- …</li>
但这不起作用,因为在更改父级版本后,子级在父级中不再有 SNAPSHOT 版本,我认为必须有更好的方法来发布具有连续性的多项目。