oks*_*ayt 26 ant deployment version-control ivy
Ivy非常适合管理依赖项,但它并不是要处理许多模块的整个软件生命周期.这就是说,它有几个特点,似乎支持它(比如在status和branch属性),以及常春藤最佳实践Blurb的暗示能够促进整合修订里程碑或释放,"有一些工作".
遗憾的是,我还没有找到关于如何管理开发 - >测试 - >部署周期的明确指导.以下是我想要实现的一些事项:
(鉴于开发人员通常在本地工作空间中的许多模块上工作)
我很清楚的一些事情是:
status应用于表示该修订版是仅用于开发,是否已准备好进行测试,或是否已准备好进行生产branch属性应足以处理不同的项目分支以下是我正在努力解决的问题:
假设我在我的工作区中检出了这些模块:

现在我对模块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查找和替换等等.在我打开那些蠕虫之前,我想得到一些意见.解决这个问题的最佳方法是什么?
您可以使用递归传递以更高的状态发布模块及其依赖项.
使用你的例子:
e-1.0-RC1以integration状态发布d-1.1-RC2以integration状态发布,e-1.0-RC1作为依赖项引用c-2.0-RC1以integration状态发布,d-1.1-RC2作为依赖项引用b-3.3-RC1以integration状态发布,e-1.0-RC1作为依赖项引用a-7.1-RC2以integration状态,引用c-2.0-RC1和b-3.3-RC1依赖性发布.a-7.1-RC2到某个milestone状态,这样您就可以进行重复交付(使用该delivertarget属性).这将以递归方式调用delivertargetfor状态低于的每个依赖项,并以状态milestone发布它milestone.关于这一点的好处是,您不需要(或想要)在工作区中检出每个项目a.这也意味着创建部署管道并拥有CI服务器要容易得多:
a,a,a为integration,a到系统测试环境,a从促进integration到milestone(促进它的依赖)a到验收测试环境,a从促进milestone到release(促进它的依赖)a到生产(或上传到下载站点)管道在任何时候都不需要访问依赖项目,并且由于递归传递是通用的,当您添加或删除依赖项(通过ivy.xml文件)时,您不需要更改管道中的任何内容.
我已将此答案标记为社区维基.还有其他人关心扩展它或纠正我错了吗?