【发布时间】:2014-06-19 06:33:31
【问题描述】:
我正在使用 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 或 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>
【问题讨论】:
标签: ant ivy dependency-management snapshot