如何从Nexus Repository迁移至JFrog Artifactory OSS?
Nexus Repository 迁移至 JFrog Artifactory OSS 可行方案
方案一:脚本批量拉取推送(通用性最强)
- 首先梳理Nexus侧所有制品库类型(如Maven、npm、Docker、PyPI等),在Artifactory OSS中提前创建好对应类型、同名的仓库,提前对齐权限配置
- 针对不同类型的制品库编写对应脚本完成拉取+上传操作:
- Maven类仓库可使用
wget或curl遍历Nexus仓库索引,递归拉取所有jar、pom等制品文件,再批量上传到Artifactory对应仓库 - Docker类仓库可批量拉取Nexus上的所有镜像,打上新的Artifactory镜像仓库标签后批量推送
- npm、PyPI等类仓库可使用对应包管理工具的批量下载命令拉取全量制品,再通过publish命令批量上传到Artifactory
- Maven类仓库可使用
- 迁移完成后做一致性校验:对比两边仓库的制品总数量、文件哈希值,排除遗漏、传输损坏的情况
- 最后执行业务割接:将所有业务侧的制品拉取源地址切换为Artifactory地址,观察1-3天无异常后再下线Nexus服务
方案二:存储层直接迁移(适合大体积制品场景)
- 该方案适用于TB级以上的制品规模,无需走网络传输,迁移速度更快
- 先确认两个服务的存储目录:Nexus默认制品存储路径为
sonatype-work/nexus3/blobs,Artifactory OSS默认制品存储路径为artifactory/var/data/artifactory/filestore - 注意:该方案仅支持相同类型的二进制制品库迁移,元数据需要后续手动重建,不建议用于有复杂依赖规则的制品库
- 完成存储文件同步后,在Artifactory后台触发全量索引重建,索引完成后逐个校验制品可用性即可
方案三:第三方开源迁移工具适配
- 可使用开源社区公开的第三方迁移脚本,针对特定制品类型做自动化迁移,只需配置两个仓库的访问地址、认证信息即可自动执行迁移流程
- 注意使用前先在非生产的测试仓库验证迁移准确性,避免出现元数据丢失、权限配置错乱的问题
注意:无论使用哪种迁移方案,操作前必须对Nexus和Artifactory的全量数据做备份,先在测试环境验证迁移流程可行后再操作生产环境。
内容的提问来源于stack exchange,提问作者dani
相关产品推荐
相关产品推荐

