如何配置Apache Ivy来删除孤立工件?

Jar*_*aus 6 java ant ivy

假设我有一个ivy.xml包含以下内容:

  <dependency org="checkstyle" name="checkstyle" rev="4.3" />
Run Code Online (Sandbox Code Playgroud)

然后我想升级到Checkstyle 4.4,所以我将我ivy.xml改为包含:

  <dependency org="checkstyle" name="checkstyle" rev="4.4" />
Run Code Online (Sandbox Code Playgroud)

retrieve第一次配置之后,我有了文件checkstyle-4.3.jar.第二次配置后,我也有文件checkstyle-4.4.jar,文件checkstyle-4.3.jar仍然存在.

有没有办法让Ivy意识到旧文件是一个孤儿,并将其从lib目录中删除?我的想法是,每次升级工具时,我都不希望开发人员的磁盘空间使用率大幅增加.

理想情况下,我也希望它从本地存储库中删除.我确实意识到本地存储库的意图是它在项目之间共享,因此删除任何东西都没有意义,因为它不知道该工件是否仍在其他项目中使用.但必须有某种修剪程序......

Phi*_*l M 10

我一直在使用Ivy 2.0.0,所以我不知道这是否适用于你正在使用的版本.

常春藤retrieve任务有一个sync属性.将此设置为已true检索目录中的未使用/未知文件(lib在您的情况下)将被删除.请记住,这将意味着将删除Ivy未专门解析的此目录中的任何手动复制的工件.

另请注意,如果您使用该sync选项但Ivy不解析依赖项(ivy.xml例如空或缺少),则将删除检索目录.