Ivy:强制依赖本地快照

2023-12-05

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

<dependency org="my.org" name="projectB" rev="1.2.0" transitive="true" conf="..." changing="true"/>

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

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

但是,如果 Alice 在项目 B 中提交了某些内容,CI 服务器会在公共存储库上推送新的 1.2.0,该版本比 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ivy:强制依赖本地快照 的相关文章

随机推荐