如何在Jenkins任务中不使用插件通过API拉取JFrog制品?
不用Jenkins插件,通过API拉取JFrog制品的Shell实现
完全可以通过JFrog的官方API(或封装API的jf命令行工具)在Shell脚本中实现制品拉取,不需要依赖任何Jenkins插件,直接嵌入Jenkins流水线的Shell步骤即可。
方法1:直接调用JFrog REST API(用curl)
JFrog Artifactory提供了完整的REST API用于制品管理,核心思路是通过认证后发起GET请求下载制品。
认证方式
有两种常用认证方式:
- API密钥认证(推荐):直接在请求头里带上
X-JFrog-Art-Api字段,值为你的JFrog API密钥,比密码更安全 - 基本认证:把用户名和密码/API密钥转成Base64格式,放在请求头的
Authorization字段
示例命令
# 替换为你的JFrog实例地址、仓库名、制品路径 JFROG_URL="https://your-jfrog-instance.com/artifactory" REPO_NAME="your-repo" ARTIFACT_PATH="path/to/your/artifact.jar" LOCAL_OUTPUT_PATH="./downloaded-artifact.jar" # API密钥认证方式 curl -H "X-JFrog-Art-Api: ${JFROG_API_KEY}" \ "${JFROG_URL}/${REPO_NAME}/${ARTIFACT_PATH}" \ -o "${LOCAL_OUTPUT_PATH}" # 基本认证方式(可选) # 先通过 echo -n "username:apikey" | base64 生成编码后的凭据 # curl -H "Authorization: Basic YOUR_BASE64_ENCODED_CRED" \ # "${JFROG_URL}/${REPO_NAME}/${ARTIFACT_PATH}" \ # -o "${LOCAL_OUTPUT_PATH}"
方法2:使用jf命令行工具(更简洁)
JFrog官方提供的jf CLI工具封装了REST API,语法更简洁,维护成本更低。
示例脚本
# Linux环境下自动安装jf CLI(其他系统可调整安装逻辑) curl -fL https://getcli.jfrog.io | sh # 配置JFrog服务器认证(替换为你的实例地址、用户名和API密钥) jf rt config --url "${JFROG_URL}" --user "${JFROG_USER}" --apikey "${JFROG_API_KEY}" # 拉取制品到本地指定路径 jf rt download "${REPO_NAME}/${ARTIFACT_PATH}" "${LOCAL_OUTPUT_PATH}"
在Jenkins中嵌入的注意事项
- 不要硬编码认证信息:用Jenkins的凭据管理存储用户名、API密钥,通过环境变量在Shell中引用(比如自由风格任务的"构建环境"绑定凭据,或Jenkinsfile中用
withCredentials) - 检查网络权限:确保Jenkins代理机器能访问你的JFrog实例(防火墙、网络策略允许)
- 错误处理:脚本中可添加
set -e让执行出错时停止,或用if判断命令返回值,确保拉取失败时Jenkins任务能正确标记为失败
内容的提问来源于stack exchange,提问作者Maheedhar Talluri
相关产品推荐
相关产品推荐

