我们有一个使用 220Gb 的 Artifactory 服务器 - 带有 libs-snapshots-local
存储库使用了 98% 的存储空间。
当我们查看存储库的配置时,我们注意到 Maven 快照行为设置为:unique
并且 Max Unique Snapshots 值为 0
.
我们将 Max Unique Snapshots 值更改为 5。
当我们仍在处理快照时,这似乎有效,但是如果我们不再部署到快照(已发布),则它不会删除任何这些文件。
举个例子:
我们在快照存储库中有以下内容:
com/company/some/app/1.23-SNAPSHOT/.. (50+ artifacts)
com/company/some/app/1.24-SNAPSHOT/.. (5 artifacts)
Artifactory 将当前 SNAPSHOT 目录 (
1.24-SNAPSHOT
) 保持在最多 5 个 Artifact ,但是 1.23-SNAPSHOT
中的 Artifact 数量目录永远不会减少。Artifactory 似乎使用 Artifact 的部署来触发清理检查 - 因此,如果您不再部署到该 Artifact ,则不会进行清理?
我们如何让 Artifactory 开始删除
1.23-SNAPSHOT
中的多余 Artifact 文件夹?
最佳答案
没错,部署新快照是删除旧快照的触发器。由于您的 1.23 神器爆炸是之前(错误)配置的剩余部分,因此您从现在开始就好了。
删除旧快照的最简单方法是将另一个(甚至是虚拟的)快照部署到 1.23 中。它将触发清理。
另一个想法可能是创建另一个快照存储库并将 1.23 的最后 5 个快照移动到它。然后您可以安全地删除 1.23 文件夹并将其从临时存储库中移回。
所有这些都是清理一个或几个版本的有效选择,但它们不会扩展。如果你有很多版本需要清理,我建议你写 a simple execution user plugin .
你只是get the children版本目录和 delete除了你想离开的那几个。
关于maven - Artifactory 不删除唯一快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27905747/