我是否可以在限制检索到的工件的状态的同时使用动态修订声明依赖项?例如,我想定义一个版本范围,例如" [1.0,1.1 [",但我不希望工件具有集成状态,只有里程碑或版本。所以我希望版本1.0.5,如果它的状态是"发布"即使版本为1.0.6,状态为"整合。"
我知道最新的。状态,但这不是我想要的:我需要在修订版上定义上限和下限。
答案 0 :(得分:2)
也许解决方案是定义您自己的版本匹配器,请参阅http://ant.apache.org/ivy/history/latest-milestone/settings/version-matchers.html
我用它(在ivysettings.xml中)来做到这一点:
<!-- Matcher for build with given build number
It assumes the version number is on the form
#.#__.# where the lastet '.#' is the build number. -->
<version-matchers usedefaults="true">
<pattern-vm>
<match revision="build_number" pattern="[\d\.]+\.${buildnumber}" args="buildnumber" matcher="regexp"/>
</pattern-vm>
</version-matchers>
<!-- Matcher for build with given build number
It assumes the version number is on the form
#.#__.# where the lastet '.#' is the build number. -->
<version-matchers usedefaults="true">
<pattern-vm>
<match revision="build_number" pattern="[\d\.]+\.${buildnumber}" args="buildnumber" matcher="regexp"/>
</pattern-vm>
</version-matchers>
您可以通过设置版本属性来调用它,例如'revision =“build_number($ {prop.buildnumber})”'
答案 1 :(得分:2)
感谢您提出这个问题,rsteele。我有一个类似的问题,这是我正在使用的解决方案。如果您的范围对应于子修订版,则它可以工作:
最简单的方法是举例:
<dependency org="com.acme" name="wigdet" branch="1" rev="latest.milestone">
依赖项解析为1.1。
这对我有用,但我对它并不完全满意,我希望有人可以指出更好的方法或在其中挖洞: