现在公司用的nexus是2.12.1的版本的,对比现在的3版本来说少了很多的功能,所以就打算把nexus迁移升级到现在的最新版本3.19.1。
首先来看一下官网对升级的要求。
在第5行和第6行可以看到,最新的2.x版本,可以直接升级到3.x版本;其他的2.x版本都需要先升级到最新的2.x版本,然后再升级到最新的3.x版本。
在nexus2的下载页面可以看到,现在nexus2的最新版本是2.14.14
在nexus3的下载页面可以看到,现在nexus3的最新版本为3.19.1
所以思路就很清晰了:2.12.1–>2.14.14–>3.19.1。
当然,官网中也给出了2.x升级到3.x的版本升级兼容性的表格,如果你的2.x版本在这个表中,可以直接升级到对应的3.x版本。比如说你的nexus版本是2.14.5,那你可以直接升级到3.7.1版本。
但是并不是所有的2.14.x版本都可以升级到3.x版本,所以官网一再强调:最好是用最新版本的2.x升级到最新版本的3.x,这样可以避免兼容性的问题。
下面是我在虚拟机上做的演示(正式环境的已经升级迁移完成了,哈哈)。 |
我这里准备了三台服务器,每台服务器放一个版本的nexus私服。
服务器 | nexus版本 |
---|---|
192.168.0.126 | 2.12.1 |
192.168.0.127 | 2.14.14 |
192.168.0.128 | 3.19.1 |
2.12.1版本迁移到2.14.14版本比较简单,直接把192.168.0.126上把2.12.1版本nexus的sonatype-work整个目录进行备份,然后把备份文件拷贝到192.168.0.127上的nexus2.14.14的对应目录中进行解压(就是替换掉sonatype-work目录),重启nexus服务就ok了。
重启完之后,可以看到已经把旧版本的数据迁移过来了。
“Administration”–>“Capabilities”–>“New”–>选择"Upgrade:Agent"–>自定义"Access Token"的值–>点击"Add"添加
上图中的第4步中可以对"Access Token"的值进行自定义,这个token在迁移的时候会用到,所以最好是设置成简单点的,容易记。我这边就设置成123456,方便记忆。
点击"Add"之后,"Upgrade:Agent"就生成了。
1)创建一个Upgrade
“System”–>“Capabilities”–>“Create capability”–>选择"Upgrade"–>点击"Create capability"
创建好之后,在System中会生成"Upgrade"。
2)配置Upgrade
“System”–>“Upgrade”
点击"Next"。
URL:填写2.14.14版本的地址。
Access Token:填写之前自定义的token值,我这边是123456。
Fetch Size:使用默认值。
填写完之后,点击"Next"。
选择要迁移的内容,这里把两个都勾选上。
点击"Next"。
Blob store:选择blob存储。我在开始迁移之前创建了另一个maven-blob存储,所以这边选择maven-blob。
Method:选择用什么方式迁移老仓库。这边用默认的Download。
点击"Next"。
选择要迁移的仓库,根据实际情况选择就行。
点击"Next"。
这是一个预览界面,没什么好说的,点击"Begin"开始吧。
这个页面是迁移开始前的准备情况,看到全都是100%,点击"Continue"继续。
点击"Continue"。
可以看到,迁移已经完成了。
点击"Done"之后,整个迁移就完成了。
迁移完成之后,可以去Browse中看一下。
圈出来的5个仓库是刚才迁移过来的,再看看具体的内容(太多了,我就截取一部分好了)。
跟之前旧版本中的做一下对比,完全一致。
如果再不放心,可以把公司的项目的放到一个新的服务器上,配置一下maven的settings文件指向这个新的nexus3.19.1的地址,然后进行编译打包测试。
这样,从nexus2.x迁移到3.x的一个完整的过程就讲完了。
参考文章:
https://help.sonatype.com/repomanager3/upgrade-compatibility---repository-manager-2-to-3
https://www.cnblogs.com/liangyou666/p/9439755.html
http://www.eryajf.net/1868.html