我有一个包含依赖项声明的常春藤xml文件,但使用rev="latest.release"
设置而不是指定硬连线修订。
<dependency org="<organisation name>" name="<module>" rev="latest.release"/>
我使用latest.release的原因是每个星期天我们的构建过程都会运行并生成&#39; release&#39;我们项目中所有模块的工件。这些工件名为WKXX-YYYY
,例如,最新的工件是WK05-2017
问题是,当我做出决定时,IVY正在将工件解析为版本WK50-2016
,我不明白为什么。在我们的中央常春藤回购中驻留的工件的ivy.xml
似乎是正确的,并且信息部分说明了正确的状态,例如发布和发布日期也是正确的。
例如
WK50-2016
<info organisation="<org name>" module="<module name>" revision="WK50-2016" status="release" publication="20161218140515"/>
WK05-2017
<info organisation="<org name>" module="<module name>" revision="WK05-2017" status="release" publication="20170205140555"/>
从上面可以看出,WK05-2017工件中的出版日期更新。
我还包括了ivysettings.xml,它也被用作IVY配置的一部分。
ivysettings.xml
<ivysettings>
<settings defaultResolver="chained"/>
<resolvers>
<!-- Remote IVY Repo -->
<filesystem name="remote" changingPattern=".*-SNAPSHOT.*" changingMatcher="regexp" checkmodified="true">
<ivy pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/ivy.xml"/>
<artifact pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/[artifact].[ext]"/>
</filesystem>
<!-- Local IVY Repo -->
<filesystem name="local" changingPattern=".*-SNAPSHOT.*" changingMatcher="regexp" checkmodified="true">
<ivy pattern="${ivy.local.repo.dir}/[organisation]/[module]/[revision]/ivy.xml"/>
<artifact pattern="${ivy.local.repo.dir}/[organisation]/[module]/[revision]/[artifact].[ext]"/>
</filesystem>
<!-- Use both the local and remote repos -->
<chain name="chained" changingPattern=".*-SNAPSHOT.*" changingMatcher="regexp" checkmodified="true">
<resolver ref="local" />
<resolver ref="remote"/>
</chain>
</resolvers>
<caches defaultCacheDir="${ivy.cache.dir}" ivyPattern="${ivy.cache.ivy.pattern}" artifactPattern="${ivy.cache.artifact.pattern}"/>
</ivysettings>
仅供参考。
changingPattern=".*-SNAPSHOT.*" changingMatcher="regexp" checkmodified="true"
使用因为我们还使用SNAPSHOT集成工件,这些工件是在对trunk进行提交时构建和发布的。我发现没有这些属性,即使远程仓库上的版本更新,常春藤也会使用本地SNAPSHOT。
提前致谢。