Artifactory不删除唯一快照

时间:2015-01-12 15:47:55

标签: maven artifactory

我们有一个使用 220Gb 的Artifactory服务器 - libs-snapshots-local存储库使用该存储的 98%

当我们查看存储库的配置时,我们注意到Maven快照行为设置为:unique并且最大唯一快照值为0

我们将Max Unique Snapshots值更改为5.

当我们仍在处理快照时,这似乎有效,但是如果我们不再部署到快照(已经发布了版本),那么它就不会删除任何这些文件。

举个例子: 我们在Snapshots存储库中有以下内容:

com/company/some/app/1.23-SNAPSHOT/.. (50+ artifacts)
com/company/some/app/1.24-SNAPSHOT/.. (5 artifacts)

Artifactory将当前SNAPSHOT目录(1.24-SNAPSHOT)保留为最多5个工件,但1.23-SNAPSHOT目录中的工件数量永远不会减少。

Artifactory似乎使用工件的部署来触发清理检查 - 因此,如果您不再部署到该工件,那么不会进行清理吗?

我们如何让Artifactory开始删除1.23-SNAPSHOT文件夹中的剩余工件?

1 个答案:

答案 0 :(得分:3)

你是对的,部署新快照是删除旧快照的触发器。由于您的1.23工件爆炸是之前(错误)配置的剩余部分,从现在开始您就不错了。

删除旧快照的最简单方法就是将另一个(甚至虚拟)快照部署到1.23中。它会触发清理。

另一个想法可能是创建另一个快照repo并将最后的5个快照1.23移动到它。然后,您可以安全地删除1.23文件夹并将其从临时仓库移回。

所有这些都是清理一个或几个版本的有效选择,但它们不会扩展。如果您要清理许多版本,我建议您编写a simple execution user plugin

您只需get the children版本目录,delete除了您想要离开的内容之外的所有内容。