与 Nexus 2.x 相比,Nexus 3.x 为我们提供了更多实用的新特性,随着 Nexus 3.x 对 Maven 的支持越来稳定,很多公司和组织都陆续将数据从 Nexus 2.x 迁移升级到 Nexus 3.x。
SonaType 官方建议我们,使用最新版本 Nexus 2.x 升级到最新版本 Nexus 3.x,并在
Nexus 升级兼容性
一文中为我们提供了各个版本 Nexus 升级到最新版本 Nexus 3.x 的流程,如下表。
1. 下载并提取 Nexus 2.x 最新版本
下载并解压最新版本的 Nexus 2.x(目前为 Nexus-2.14.20-02),具体下载和解压步骤请参考
Nexus 2.x 下载和安装
2. 替换工作目录
无论是 Nexus 2.x 还是 Nexus 3.x,其安装包在解压后都包含两部分:
nexus-版本号 Nexus 应用程序目录
sonatype-work Nexus 工作目录(真正的仓库,同时包含了 Nexus 的配置,如定时任务、用户配置)
若 Nexus 的版本升级是在大版本相同的情况下进行的(例如从 Nexus 2.11.4-01 升级到 Nexus-2.14.20-02),则只需要将
新的 Nexus 工作目录
复制到现有版本的目录下,替换旧版本 Nexus 的工作目录即可。
3. 修改配置文件
如果用户对以下文件的默认配置进行了任何更改,则需要在新版本中手动进行相同的更改,Nexus 不支持将这些文件从一个版本复制到另一个版本。
<应用程序目录> /conf/nexus.properties
<应用程序目录> /conf/jetty*.xml
<应用程序目录> /bin/jsw/conf/wrapper.conf
<应用程序目录> /nexus/WEB-INF/classes/ehcache.xml
<应用程序目录> /conf/logback*.xml
由于 Nexus 升级迁移过程需要同时启动 Nexus 2.x 和 Nexus 3.x,为了防止端口(两者默认端口都是 8081)冲突,我们可以将 Nexus 2.x 启动时监听的端口(端口在 <应用程序目录>/conf/nexus.properties 中配置)修改为 8082。
4. 将 Nexus 2 服务指向新实例
在以上步骤完成后,如果旧版本 Nexus 是作为 Windows 服务运行的,那么我们需要将旧版本的 Nexus 服务卸载,然后使用新实例重新安装 Nexus 服务,具体操作步骤如下。
1) 使用 win +R 快捷键,打开运行窗口,输入 services.msc,点击确定按钮,如图 2 所示。
将 Nexus 2.x 升级到 Nexus 3.x,从本质上说就是将 Nexus 2.x 中的数据传输或迁移到 Nexus 3.x。
Nexus 2.x 升级到 Nexus 3.x 通常需要如下 4 步:
Nexus 2.x 启用 Upgrade: Agent (升级代理)功能
Nexus 3.x 启用 Upgrade (升级)功能
在 Nexus 3.x 中配置升级信息
运行升级程序
1. Nexus 2.x 启用 Upgrade: Agent 功能
Nexus 2.x 升级到 Nexus 3.x 的第一步,就是在 Nexus 2.x 中开启 Upgrade: Agent 功能,操作步骤如下。
1)在 Nexus 2.x 用户界面左侧的导航栏中,点击 Administration 下的 Capabilities,查看 Nexus 2.x 功能列表,如下图。
URL:Nexus 2.x 的完整访问地址,例如 http://localhost:8082/nexus。
Access Token:Nexus 2.x 启用升级代理(Upgrade: Agent)功能时配置的 Access Token。
3)跳转到“内容”页面,在该页面中,我们需要选择升级过程中传输的内容,包括以下 2 项:
仓库的配置及内容
Nexus 服务器配置
选择完成后,点击下方的 Next 按钮。