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

如何通过Jenkins Artifactory插件在构建中途上传文件?

解决Jenkins构建中途上传制品到Artifactory并触发下游任务的方案

针对你提出的需求——在Jenkins构建过程中途上传文件到Artifactory,触发下游任务下载该制品,同时利用Artifactory插件清理旧构建制品(不用Jenkins自带归档),这里有两个可行的方案,根据你的灵活性需求选择:

方案一:用Artifactory插件的Generic Integration完成全流程(推荐)

这个方案完全依赖Jenkins Artifactory插件,无需手动写curl命令,能自动关联构建与制品,方便后续清理:

  • 步骤1:配置Generic-Artifactory集成
    在你的Jenkins任务配置页,找到Artifactory相关配置区,选择「Generic-Artifactory Integration」。提前在Jenkins全局配置好Artifactory服务器(包括凭证和仓库信息),这里直接选择对应的服务器即可。
    设定上传规则:指定本地要上传的文件模式(比如./build/outputs/*.zip),以及Artifactory的目标仓库和路径(比如libs-local/com/myapp/${BUILD_NUMBER}/,用${BUILD_NUMBER}区分不同构建的制品)。记得勾选「上传后保留构建关联」,这是后续清理旧构建的关键。

  • 步骤2:在构建中途添加上传步骤
    不用等构建结束,在你需要上传制品的阶段(比如编译完成后),添加「Artifactory Generic Upload」构建步骤。这里的配置要和步骤1的规则对应,确认文件模式、目标仓库路径无误。执行这一步后,文件会立即上传到Artifactory,你还能通过插件提供的环境变量ARTIFACTORY_UPLOADED_ARTIFACTS获取已上传制品的完整路径。

  • 步骤3:触发下游任务并传递制品信息
    上传完成后,添加「Trigger parameterized build on other projects」构建步骤,选择你要触发的下游任务。传递关键参数:比如把Artifactory仓库名(ARTIFACT_REPO=libs-local)和制品路径(ARTIFACT_PATH=com/myapp/${BUILD_NUMBER}/myapp.zip)作为参数传给下游,让下游任务知道从哪里下载。

  • 步骤4:配置旧构建清理
    在任务的「构建后操作」里添加「Artifactory Build Cleanup」步骤。设定清理规则:比如保留最近10个构建的制品,或者删除7天前的旧构建制品。因为之前勾选了构建关联,插件会自动找到每个构建对应的Artifactory制品,清理时精准删除,不会误删其他构建的文件。

方案二:curl手动上传 + Artifactory插件做清理(适合自定义上传逻辑)

如果你的上传逻辑比较复杂,需要用curl实现,也可以结合插件完成构建关联和清理:

  • 步骤1:用curl完成中途上传
    在构建步骤中添加Shell/PowerShell脚本,用curl上传文件。注意要使用Jenkins的凭证管理来获取Artifactory的用户名和密码,避免硬编码。示例bash命令:

    # 先绑定Artifactory凭证(在任务配置的「绑定凭证」中添加,凭证ID设为artifactory-creds)
    curl -u ${ARTIFACTORY_CREDS_USR}:${ARTIFACTORY_CREDS_PSW} -X PUT "http://your-artifactory-url/artifactory/libs-local/com/myapp/${BUILD_NUMBER}/myapp.zip" -T ./build/outputs/myapp.zip
    
  • 步骤2:关联构建与Artifactory制品
    上传完成后,添加「Artifactory Build Info」构建步骤,手动添加刚才上传的制品路径(比如libs-local/com/myapp/${BUILD_NUMBER}/myapp.zip)。这一步是为了让插件把当前构建和Artifactory里的制品关联起来,这样后续清理时才能准确找到要删除的文件。

  • 步骤3:触发下游任务
    和方案一一样,用参数化构建触发下游任务,传递仓库名和制品路径参数。

  • 步骤4:配置旧构建清理
    同样添加「Artifactory Build Cleanup」步骤,设定清理规则即可。因为已经完成了构建与制品的关联,插件会自动处理旧制品的删除。


下游任务的下载配置

下游任务要下载制品,同样可以用Artifactory插件的「Generic Download」步骤:

  • 添加「Artifactory Generic Download」构建步骤,选择对应的Artifactory服务器。
  • 用上游传递的参数配置下载路径:比如从${ARTIFACT_REPO}/${ARTIFACT_PATH}下载到本地./downloads/目录,这样就能精准获取到上游上传的制品。

内容的提问来源于stack exchange,提问作者Anton Balashov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:29:02