Ivy适合管理依赖,但不适用于跨多个模块处理整个软件生命周期。尽管如此,它确实有一些功能似乎支持它(例如
status
和branch
属性),而ivy最佳实践简介也暗示可以通过一些工作将集成版本推进到里程碑或发布。
不幸的是,我没有找到明确的指导来管理dev-test-deploy周期。以下是我想要实现的一些内容:
(考虑到开发人员通常在本地工作区跨多个模块工作)
- 开发人员可以在本地发布模块的更改,以便工作区中的其他模块可以获得更新的构建文件。
- 开发人员可以使用一个命令将版本指定为“准备部署到测试”。
- 测试人员可以使用一个命令将版本指定为“准备上线”。
- 开发人员可以从源代码重新构建任何版本,并且正确选择了相应的依赖项(即可重复构建)。
我比较清楚的一些事情是:
- 修订版
状态
应用于表示该修订版是否仅用于开发,准备测试或准备生产。 分支
属性足以处理不同的项目分支。
我将面临以下问题:
如何促进集成构建
假设我在我的工作区中检出了这些模块:
现在我对模块a感到满意,并决定使用我的工作空间中检出的版本发布一个里程碑。仓库中需要发生以下事情:
- 发布
e-1.0-RC1
- 发布
d-1.1-RC2
,引用e-1.0-RC1
作为依赖项 - 发布
c-2.0-RC1
,引用d-1.1-RC2
作为依赖项 - 发布
b-3.3-RC1
,引用e-1.0-RC1
作为依赖项 - 最后,发布
a-7.1-RC2
,引用c-2.0-RC1
和b-3.3-RC1
作为依赖项。
如果我试图自己完成这个任务,我可能会做一些工作空间管理、ivy.xml查找和替换等操作。在我打开这个“坑”之前,我想听听一些意见。最好的解决方法是什么?