常春藤:仅解决版本范围兼容的版本

时间:2013-04-16 12:05:21

标签: ivy dependency-management

我有一个不断发展的共同组件。很多项目都依赖于这个组件。现在,我使用rev =“latest.release”作为依赖。但这可能会打破构建,考虑释放组件的不兼容2.0。我想表达的是:使用补丁级别的最新版本。

所以不是“latest.release”,而是写“[1.1,1.2 [”,但这也解析了最新的集成版本(如1.1.9_dev1)。有没有办法结合版本范围和状态?

1 个答案:

答案 0 :(得分:1)

Ivy不支持这样的依赖:

<dependency org="org.acme" name="common" rev="[1.1,1.2[" status="release" />

但它支持额外的属性,所以你可以编写类似的东西:

<dependency org="org.acme" name="common" rev="[1.1,1.2[" e:mystatus="release" />

请参阅:http://ant.apache.org/ivy/history/latest-milestone/concept.html#extra

检查额外属性是关于相等,而常春藤状态是比较(发布&gt;集成)。在你的用例中只有“发布”,它应该是一样的。

但是,那么你需要将e:mystatus传播到你常春藤存储库中的每个模块,这可能很麻烦,具体取决于你控制常春藤存储库的数量。