我们有一个使用 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
文件夹中的剩余工件?
答案 0 :(得分:3)
你是对的,部署新快照是删除旧快照的触发器。由于您的1.23工件爆炸是之前(错误)配置的剩余部分,从现在开始您就不错了。
删除旧快照的最简单方法就是将另一个(甚至虚拟)快照部署到1.23中。它会触发清理。
另一个想法可能是创建另一个快照repo并将最后的5个快照1.23移动到它。然后,您可以安全地删除1.23文件夹并将其从临时仓库移回。
所有这些都是清理一个或几个版本的有效选择,但它们不会扩展。如果您要清理许多版本,我建议您编写a simple execution user plugin。
您只需get the children版本目录,delete除了您想要离开的内容之外的所有内容。