Ivy 有没有一种方法可以使用动态修订指定常春藤依赖项,但限制其状态?

Ivy 有没有一种方法可以使用动态修订指定常春藤依赖项,但限制其状态?,ivy,Ivy,我是否可以使用动态修订声明依赖项,同时限制检索到的工件的状态?例如,我想定义一个版本范围,比如“[1.0,1.1[”,但我不想要集成状态的工件,只想要里程碑或版本。因此,如果版本1.0.5的状态为“发布”,即使版本1.0.6的状态为“集成”,我也想要版本1.0.5 我知道latest.status,但这不是我真正想要的:我需要定义修订版的上限和下限。也许解决方案是定义您自己的版本匹配器,请参见 我使用它(在ivysettings.xml中)来实现: 您可以在构建脚本中通过设置诸如“rev

我是否可以使用动态修订声明依赖项,同时限制检索到的工件的状态?例如,我想定义一个版本范围,比如“[1.0,1.1[”,但我不想要集成状态的工件,只想要里程碑或版本。因此,如果版本1.0.5的状态为“发布”,即使版本1.0.6的状态为“集成”,我也想要版本1.0.5


我知道latest.status,但这不是我真正想要的:我需要定义修订版的上限和下限。

也许解决方案是定义您自己的版本匹配器,请参见

我使用它(在ivysettings.xml中)来实现:



您可以在构建脚本中通过设置诸如“revision=”build_number(${prop.buildnumber})”之类的修订属性调用它。

感谢您提出这个问题,rsteele。我有一个类似的问题,下面是我使用的解决方案。如果您的范围对应于子修订,它就会起作用:

最简单的方法是用一个例子来说明这一点:

<dependency org="com.acme" name="wigdet" branch="1" rev="latest.milestone">

  • 1/ivy-1.0.xml:status=“集成”
  • 1/ivy-1.1.xml:status=“里程碑”
  • 1/ivy-1.2.xml:status=“集成”
依赖项解析为1.1

这对我来说很有效,但我并不完全满意,我希望有人能指出更好的方法或在其中戳洞:

  • 分支似乎是合适的,因为com.acme在版本控制中实际上有一个对应于版本1的分支
  • 另一方面,分支似乎不合适,因为“1”是修订的一部分,也许分支在其他方面更有用
  • 这并不能解决rsteele提出的更普遍的问题
<dependency org="com.acme" name="wigdet" branch="1" rev="latest.milestone">