6

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

  <dependency org="checkstyle" name="checkstyle" rev="4.3" />

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

  <dependency org="checkstyle" name="checkstyle" rev="4.4" />

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

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

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

4

1 回答 1

10

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

Ivyretrieve任务有一个sync属性。将此设置为true您检索到的目录(lib在您的情况下)中未使用/未知的文件将被删除。请记住,这意味着该目录中任何手动复制的、Ivy 未明确解析的工件都将被删除。

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

于 2009-04-19T15:51:02.157 回答