我有一个正在不断开发的通用组件。许多项目依赖于这个组件。现在,我使用 rev="latest.release" 作为依赖项。但这可能会破坏构建,请考虑发布不兼容的 2.0 组件。我想表达的是:使用最新的版本,即补丁级别。
所以我会写“[1.1,1.2[”而不是“latest.release”,但这也解决了最新的集成版本(如 1.1.9_dev1)。有没有办法结合版本范围和状态?
我有一个正在不断开发的通用组件。许多项目依赖于这个组件。现在,我使用 rev="latest.release" 作为依赖项。但这可能会破坏构建,请考虑发布不兼容的 2.0 组件。我想表达的是:使用最新的版本,即补丁级别。
所以我会写“[1.1,1.2[”而不是“latest.release”,但这也解决了最新的集成版本(如 1.1.9_dev1)。有没有办法结合版本范围和状态?
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
额外属性的检查是关于相等性的,而 Ivy 状态是一个比较(发布 > 集成)。在您仅关于“发布”的用例中,它应该工作相同。
但是,您需要将 e:mystatus 传播到 Ivy 存储库中的每个模块,这可能会很痛苦,具体取决于您对 Ivy 存储库的控制程度。