常春藤:强制本地快照依赖

我有一个依赖项目B的项目A; 两者都是积极发展的内部项目。 假设最新的Project A版本是1.1.2,这取决于项目B 1.1.1。 现在我们正在开发项目A 1.2.0,它依赖于项目B 1.2.0也在开发中。

 

项目B 1.2.0的新集成构建由公共本地存储库中的CI服务器推送,因此,由于“更改”,每个人在发布后立即获得最新的集成构建。

假设Bob正在开发一个项目A的新function,需要对项目B进行一些修改; 他在他的本地私有存储库中发布了一个新的shapshot Project B 1.2.0,并且他在构建中被选中,因为它比公共存储库中的更新。 到目前为止一切都好。

但是如果Alice在Project B中提交了一些东西,那么CI服务器会在公共仓库上推送一个新的1.2.0,这比Bob在本地的仓库更新。 现在Bob获得了覆盖其本地更改的通用版本。

当然我可以使用不同的名称(使用属性文件以一种聪明的方式,名称不必以ivy.xml结尾),类似于Bob的1.2.0_snapshot,只要Bob需要本地版本,然后切换回1.2.0当通用版本没问题时。 但是有没有办法强制使用状态为“快照”的工件(这将始终是本地构建的状态)而不是具有“集成”的工件(由CI服务器生成的工件将始终具有该状态)或更高?

我尝试了“latest.snapshot”但它需要集成版本,如果更新的话。

处理这种模式的最佳方法是什么?

我想你希望你的本地解析器处于“强制模式”。 在ivysettings.xml中的本地解析程序上设置force =“true”。

请参阅强制模式说明: http : //ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html