我使用Ant来构建我的项目和Ivy来解决它的依赖关系。我的项目有一个依赖项,它将快照发布到我的内部Artifactory服务器。
如果依赖项已发布新快照,并且我执行了<ivy:retrieve />
,Ivy将获取新快照,但保留上一个快照。所以我在lib
目录中有两个版本的依赖项。
依赖项快照的名称类似于depproject-1.0.0+23.jar
,其中23
是内部版本号。它发布在http://artifactory.example.com/example-snapshots-local/com.example/depproject/1.0-SNAPSHOT/depproject-1.0.0+23.jar之类的地址。这不是Maven存储库,它配置为存储唯一的快照。
我是Ivy的新手。这是预期的行为吗?如何配置Ivy或Ant以便仅保留最新的依赖关系快照?
ivysettings.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
<settings defaultResolver="main" />
<resolvers>
<chain name="main">
<ibiblio
name="artifactory-example-snapshots"
m2compatible="false"
root="http://artifactory.example.com/example-snapshots-local/"
pattern="[organization]/[module]/1.0-SNAPSHOT/[artifact]-[revision](-[classifier]).[ext]" />
<!-- more repos listed -->
</chain>
</resolvers>
</ivy-settings>
的ivy.xml
<ivy-module version="2.0">
<info organisation="com.example" module="myproject" />
<dependencies>
<dependency org="com.example" name="depproject" rev="latest.integration" />
</dependencies>
</ivy-module>