我的团队使用特性分支来实现新功能,并持续将快照构建部署到远程仓库供用户使用。因此,“部署”实际上只意味着“分发到远程Maven存储库”。目前,我们仅为主分支运行连续集成构建,而不是特性分支,原因如下:我们使用Maven构建项目并在JAR旁边分发JavaDoc和源代码。
我的计划是为每个特性分支的构建添加一个分类器,并期望该分类器在创建和部署构件时被使用,如下所示:
- 分支:主
- 分类器:无
构件:
foo-${version}
.jar、foo-${version}-sources.jar
、foo-${version}-javadoc.jar
分支:特性X
- 分类器:myfeature
- 构件:
foo-${version}-feature.jar
、foo-${version}-sources-feature.jar
、foo-${version}-javadoc-feature.jar
我并不关心构件的确切命名,我只需要针对特性分支分别生成主要的、源代码和JavaDoc构件。事实证明,JavaDoc插件和源代码插件都没有考虑已配置的分类器,因此实际上覆盖了为主构建创建的构件。
我并不想改变artifactId,尽管这可能会解决问题。您如何处理Maven的特性分支和持续集成?