Artifactory是否支持SNAPSHOT工件到期的概念?

时间:2012-12-10 20:21:05

标签: maven artifactory

我正在使用Artifactory来支持企业多模块项目。通常,我们更改模块的名称,并且不更新POM文件中的相关依赖项以使用新模块名称。由于SNAPSHOT依赖关系不会定期自动清理,因此这些旧的模块引用可以在那里停留数月。当我将Artifactory迁移到另一台服务器并且旧的模块依赖项导致构建错误时,我发现了一些。我每晚使用Jenkins构建这些SNAPSHOT工件,所以我想要一些方法来自动清理SNAPSHOT工件。

Artifactory(或其他工件服务器,如Nexus)是否支持一个概念,如果SNAPSHOT工件早于X天,工件将被删除?有没有其他方法可以自动化工件服务器清理来完成我想要做的事情?我唯一能想到的是创建一个cron作业,以便在每晚构建开始之前定期清除libs-snapshot-local。有人已经建立了这种能力吗?

3 个答案:

答案 0 :(得分:2)

据我所知,Artifactory没有自动删除早于某个值的模块的方法。在我的商店,我们编写了一个Groovy客户端,使用Artifactory's REST API完成此操作。

请注意,如果您的工件是共享库,则在删除它们之前,需要注意不要依赖它们。我们的脚本也考虑到了这一点。

如果您对跟进感兴趣,请发表评论,我会看看是否可以与您分享我们的剧本。

答案 1 :(得分:2)

另一个解决方案可能是user plugin。您可以按计划编写一个简单的Groovy脚本,该脚本将在Artifactory本身中运行(与REST Gareth建议的远程调用相反),searching for artifacts not downloaded for a long timedeleting them

答案 2 :(得分:2)

我已经制作了一个Ruby脚本来删除X天未下载的工件。它的工作方式就像JBaruch在答案中提到的那样。

它不是插件。它适用于Artifactory Open Source。只有Artifactory Pro支持插件。

源代码:https://gist.github.com/aleung/5203736