JFrog Artifactory 完整使用指南
一、Artifactory 核心介绍
Artifactory 是 JFrog 出品的通用制品仓库管理平台,统一管理各类二进制制品:Maven、Gradle、NPM、Docker、PyPI、Go、NuGet、Helm、RPM、DEB、Git LFS 等,核心能力:
私有仓库、远程代理仓库、虚拟聚合仓库三层仓库模型
制品版本管理、权限、元数据、搜索、清理、复制同步
CI/CD 流水线集成(Jenkins、GitLab CI、GitHub Actions)
漏洞扫描(Xray)、合规审计、构建溯源
高可用集群、多环境制品流转
三种仓库类型
Local 本地仓库:存储本地上传私有制品(公司内部包、镜像)
Remote 远程仓库:代理公共源(maven-central、docker.io、npm 官方源),缓存加速内网下载
Virtual 虚拟仓库:聚合多个 Local+Remote,客户端只配置一个地址即可拉取所有依赖
二、安装部署(快速两种方式)
1. Docker 快速启动(测试 / 演示)
bash
# 单节点社区版
docker run -d
--name artifactory
-p 8081:8081
-p 8082:8082
-v /data/artifactory:/var/opt/jfrog/artifactory
jfrog/artifactory-jcr:latest
访问地址:http://ip:8081/artifactory
默认账号:admin / password,首次登录强制改密码
2. Linux 生产安装
官方 RPM/DEB 包,外置 PostgreSQL 数据库,配置独立存储卷,开启 HTTPS、反向代理 Nginx。
三、基础界面操作
1. 创建仓库示例(Maven)
Admin → Repositories → Repositories → Create Repository
选择包类型:Maven
分三种场景:
Local:maven-local 存放公司内部 jar
Remote:maven-central 代理中央仓库
Virtual:maven-virtual 聚合 local + central
保存后仓库地址:http://ip:8081/artifactory/maven-virtual
2. 制品上传 / 下载(Web UI)
进入对应仓库 → Deploy
上传本地文件,填写 GAV 坐标(groupId/artifactId/version)
制品详情页:下载、删除、复制 URL、设置属性、权限
3. 权限管理
创建用户 / 用户组
给组分配仓库权限:Read(拉取)、Write(上传)、Delete、Manage
支持细粒度路径权限(只允许操作某个目录)
四、各语言客户端接入使用
1. Maven/Gradle Java 项目
Maven settings.xml 配置
html
<servers>
<server>
<id>artifactory</id>
<username>admin</username>
<password>你的密码</password>
</server>
</servers>
<mirrors>
<mirror>
<id>artifactory</id>
<url>http://127.0.0.1:8081/artifactory/maven-virtual</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
上传制品命令
bash
mvn deploy -DaltRepositoryId=artifactory -DaltReleaseRepositoryUrl=http://ip:8081/artifactory/maven-local
2. NPM 前端
创建 npm-local、npm-remote、npm-virtual
客户端登录配置
bash
# 设置仓库地址
npm config set registry http://ip:8081/artifactory/api/npm/npm-virtual
# 登录
npm login --registry=http://ip:8081/artifactory/api/npm/npm-virtual
# 上传包
npm publish
3. Docker 镜像仓库
Artifactory 8082 端口为 Docker 仓库端口
创建 docker-local、docker-remote、docker-virtual
登录推送镜像
bash
# 登录仓库
docker login ip:8082
# 镜像打标签
docker tag nginx:latest ip:8082/docker-local/nginx:v1
# 推送
docker push ip:8082/docker-local/nginx:v1
# 拉取
docker pull ip:8082/docker-local/nginx:v1
4. Python PyPI
bash
# pip 配置源
pip config set global.index-url http://admin:password@ip:8081/artifactory/api/pypi/pypi-virtual/simple
# 上传包
twine upload --repository-url http://ip:8081/artifactory/api/pypi/pypi-local dist/*
五、JFrog CLI 命令行工具(高频推荐)
JFrog CLI 统一操作所有制品,适配 CI 流水线
1. 安装 jf
bash
# Linux
curl -fL https://install-cli.jfrog.io | sh
2. 配置连接 Artifactory
bash
jf c add art --url http://ip:8081/artifactory --user admin --password xxx
jf c use art
3. 常用命令
bash
# 上传文件到本地仓库
jf rt upload ./target/*.jar maven-local/com/demo/1.0/
# 下载制品
jf rt download maven-local/com/demo/1.0/demo.jar ./
# 搜索制品
jf rt search "*.jar"
# 构建信息推送(构建溯源)
jf mvn clean install deploy
jf rt build-publish my-build 1
六、CI/CD 集成示例(GitLab CI)
yaml
stages:
- build
- upload
build:
stage: build
image: maven:3.8-openjdk-11
script:
- mvn clean package
upload:
stage: upload
image: jfrog/jfrog-cli
script:
- jf c add art --url $ART_URL --user $ART_USER --password $ART_PWD
- jf rt upload target/*.jar maven-local/demo/app/1.0/
七、常用高级功能
1. 制品生命周期清理(Retention)
Admin → Repositories → 仓库设置 → Cleanup Policies
按版本数量保留、按过期天数删除、删除快照 / 废弃构建
2. 跨机房仓库复制(Replication)
支持推 / 拉复制,多环境同步制品(测试→预发→生产)
3. 元数据与属性
给制品打标签、环境标记、分支名称,用于流水线筛选分发
4. Xray 漏洞扫描(安全)
绑定 Artifactory,自动扫描上传包 CVE 漏洞、许可证合规,阻断高危制品部署
5. 构建溯源 Build Info
记录构建依赖、版本、提交记录,一键追溯漏洞来源制品
八、常见问题
401 未授权:账号密码错误、仓库未分配读写权限
远程仓库拉取超时:外网不通,配置代理服务器
Docker 登录失败:确认使用 8082 端口,关闭 http 校验或配置证书
磁盘爆满:配置清理策略,定期删除无用快照制品
上传包报 403:用户无 Write 权限
上一条:JFrog Artifactory用途
下一条:jfrog artifactory优势