You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Artifactory开源版Jenkins构建留存规则失效:构建未自动删除如何解决

解决Jenkins+Artifactory开源版构建无法自动删除的问题

我来帮你排查下这个问题哈!你遇到的构建没被自动删除的情况,核心原因和Artifactory开源版的功能限制有关,咱们一步步来解决:

1. 先搞清楚核心限制:Artifactory开源版不支持自动构建清理

你在代码里配置的buildInfo.retention是给Artifactory传递构建保留规则,但只有Artifactory企业版才会自动执行这些规则,开源版没有内置的自动构建清理能力,所以即使你把规则发过去了,也不会触发删除动作。

2. 开源版下的可行解决方案

方式一:用Artifactory REST API手动/半自动删除

你可以通过调用Artifactory的API来删除指定构建,还能同时删除对应的产物。把这个命令加到Jenkins构建的后续步骤里(比如Shell脚本步骤),就能实现半自动清理:

# 删除指定构建并同时删除关联产物
curl -X DELETE "http://<你的Artifactory地址>/api/build/<你的构建名称>/<构建编号>?deleteArtifacts=true" -u <Artifactory用户名>:<密码>

如果想批量删除旧构建,还可以用API的builds端点来筛选删除,比如删除3天前的构建:

curl -X DELETE "http://<你的Artifactory地址>/api/build/<你的构建名称>?deleteArtifacts=true&days=3" -u <用户名>:<密码>

方式二:结合Jenkins自身的构建保留策略

让Jenkins自己管理构建的保留,同时同步删除Artifactory里的对应内容:

  • 第一步:在Jenkins任务的配置页面,找到「构建后操作」,添加「Discard old builds」,设置你需要的保留规则(比如最大构建数2、保留天数2)。
  • 第二步:在同一个「构建后操作」里,添加一个「Execute shell」(或Windows批处理)步骤,调用上面的Artifactory删除API,把当前构建的编号传入,这样Jenkins删除自身旧构建时,也同步删掉Artifactory里的对应构建和产物。

3. 检查现有代码的调整点

你当前的buildInfo.retention配置在开源版里是无效的,可以考虑移除或者保留(不影响,但也不会起作用)。另外,要确保执行删除操作的账号拥有Artifactory的delete和build_delete权限,否则API调用会失败。

内容的提问来源于stack exchange,提问作者ram dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:50:45