maven - Artifactory 不删除唯一快照

标签 maven artifactory

我们有一个使用 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/

相关文章:

javascript - 将 JS 缩小作为 Maven 目标运行?

android - 使用 Gradle 从 Artifactory 访问依赖项

gradle - 在 Gradle 构建中添加模块名称

maven - 部署到 Maven 时,上传永远挂起

java - Eclipse JavaEE (Maven)项目 WAS 7 迁移到 IntelliJ

Java class.getResourceAsStream() 返回不正确的字节

eclipse - 通过 UI 将 Sources.jar 存档部署到 Artifactory

artifactory - JFrog Artifactory中本地仓库、远程仓库和虚拟仓库有什么区别

java - 使用docker部署时tomcat的授权设置问题

maven - 当Java 9模块系统集成到Maven中时,如何处理自动模块