我们正在使用Perforce和Maven,我们的情况是,我们有一个托管成熟项目的分支A和另一个分支B,我们开始使用第一个分支中托管的代码。
我预计未来可能会出现这样的情况:分支A中的签入将导致分支B中的编译失败,因为处理它们的开发人员不了解特定的用法和交叉依赖性。然后开发人员将浪费时间更新B代码并确定其未编译。
分支/项目A需要保持为自己独立的实体,因为它的代码可以用于另一个未来的项目中。
有人可以建议我处理和缓解这样的问题吗?您可以建议的任何最佳做法?非常感谢。
答案 0 :(得分:2)
您需要设置构建环境:
1)设置连续集成(CI)服务器,例如Jenkins。当开发人员提交分支A时,它应检测提交并触发构建。
2)当分支A完成其构建时,它将其工件部署到共享存储库。强烈建议(非严格要求购买)是分支A的构建部署到存储库服务器,例如Nexus(但source control中的存储库或FTP server does the job too)。
3)在CI服务器中设置分支B,但是只要分支A的构建成功,就会运行构建“触发器”。
4)配置两个构建配置,以便在构建失败时向相关团队成员(或每个人)发送电子邮件。
此外,两个分支都应该依赖于上面#2的存储库。如果您需要整个环境可重复且自包含,请转到存储库中的scm路径。