Nexus仓库迁移到Artifactory指南

首先JFrog 提供nexus迁移工具:https://github.com/JFrogDev/nexus2artifactory
另外提供脱离工具的两套迁移方案:
第一套方案基于 wget 递归下载(只支持nexus2):
通过wget 递归下载缓存所有文件到Remote 仓库(nexus-release&nexus-snapshots),以下是我在本地的测试命令:用户名密码是admin/password(Artifactory的用户名密码)
wget --http-user=admin --http-passwd=password -r -p -np -l 0 --spider http://beijing.artifactory.com/artifactory/nexus-release/
直接执行该命令,不会下载文件到本地,但Artifactory会缓存在Artifactory Remote 仓库缓存中 nexus-release-cache。
该命令可以重复执行。如果需要增量同步,再次执行该命令,新的文件会缓存,已经缓存的文件不会重复下载已经重复的文件。

两套方案步骤:
第一套方案:

1.为了获取到nexus包以及新产生的包,在Artifactory中创建对应的remote仓库(对应nexus proxy仓库),如nexus-releases代理nexus的 releases仓库,nexus-snapshots代理nexus的snapshots仓库。保证artifactory用户可以获取nexus用户创建的包。
2.通过wget --spider 定期同步缓存nexus中的包(上面描述)。
3.在Artifactory 中创建local仓库(对应nexus hosted仓库),如snapshots和releases仓库,用于Artifactory用户发布包。如果hosted库数据量多可以用api创建。
4.nexus用户创建proxy仓库代理Artifactory的第3步产生的local仓库,如releases和snapshots仓库,可以获取到artifactory用户创建的新包。
5.创建Virtual仓库(对应nexus group 仓库),包含第3步和创建的local仓库,和第1步创建的remote仓库。开发人员setting文件统一指向这个仓库解析依赖.
6.当最后所有用户迁移到Artifactory后,最后执行一次第2步操作,可以停掉nexus服务。
第二套方案

1.在Artifactory 创建对应的local仓库(对应nexus hosted仓库),如snapshots和releases仓库,如果hosted库数据量多可以用api创建。
2.通过在Artifactory 服务器上 Mount(nfs) nexus 服务器上的仓库目录(.m2/),如果是同一机器跳过此步。
3.使用Artifactory 导入功能。Admin->Import&export -> Import Repository from Path, 导入后会有一个全量的nexus mirror。
4.为了获取到nexus新产生的包,在Artifactory中创建对应的remote仓库(对应nexus proxy仓库),如nexus-releases代理nexus的 releases仓库,nexus-snapshots代理nexus的snapshots仓库。保证artifactory用户可以获取nexus用户创建的新包。
5.创建Virtual仓库(对应nexus group 仓库),包含第一步创建的local仓库,和第4步创建的remote仓库。开发人员setting文件统一指向这个仓库解析依赖
6.nexus用户同样创建proxy仓库代理Artifactory的第一步产生的local仓库,如releases和snapshots仓库,可以获取到artifactory用户创建的新包
7.当最后所有用户迁移到Artifactory后,最后执行一次第三步操作,可以停掉nexus服务。

你可能感兴趣的:(Nexus仓库迁移到Artifactory指南)