摘要
本文介绍 Mavne 私服 Nexus 升级的全过程,从 3.29.2-02 升级到 3.83.2-01
Nexus官网
OpenJdk下载地址
Nexus系统配置要求
升级过程说明
Nexus 从 3.71.x 开始,不再支持 OrientDB,后续版本仅支持 H2 和 PostgreSQL ,根据官网说明,3.70.x 以下的版本需要将 Nexus 先升级到 3.70.x 的最新版本,然后使用官方提供的数据库迁移工具,将数据库迁移到 H2 后,再升级到 3.71.x 以后的版本
从 3.29.2-02 升级到 nexus-3.70.4-02
安装 OpenJDK
需要先安装好 OpenJDK,原因是Nexus的数据库迁移工具仅支持 OpenJDK,不支持 Oracle JDK,我这里选择安装 OpenJDK11
123456cd /usr/localcurl -O https://mirrors.tuna.tsinghua.edu.cn/Adoptium/11/jdk/x64/linux/OpenJDK11U-jdk_x64_linux_hotspot_11.0.28_6.tar.gztar -zxvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.28_6.tar.gzln -s /usr/local/jdk-11.0.28+6/bin/java /usr/bin/javaexport JAVA_HOME=/usr/local/jdk-11.0.28+6export PATH=$JAVA_HOME/bin:$PATH
安装 nexus-3.70.x
目前官网发布的nexus-3.70.x的最新版本为 nexus-3.70.4-02,下载页面,其对应的数据库迁移工具也可以从该页面下载。
这里我们选择 Java 11 的版本,升级安装与第一次安装方式一样。
1234567891011121314# 切换到 nexus 用户,原 nexus-3.29.2-02 就安装在 该用户的 `home` 目录下su - nexus# 关闭 原 nexus 服务,关于如何将 Nexus 配置为系统服务,可以参考:https://help.sonatype.com/en/run-as-a-service.htmlsudo systemctl stop nexus#~/nexus3/bin/nexus stop# 需要科学上网curl -O https://download.sonatype.com/nexus/3/nexus-3.70.4-02-java11-unix.tar.gztar -zxvf nexus-3.70.4-02-java11-unix.tar.gzrm -f ~/nexus3ln -s /usr/local/nexus-3.70.4-02 ~/nexus3# 启动 nexussudo systemctl start nexus# ~/nexus3/bin/nexus start
迁移数据到 H2
下载数据库迁移工具
1234mkdir ~/backupcd ~/backup# 与 nexus 版本一致curl -O https://download.sonatype.com/nexus/nxrm3-migrator/nexus-db-migrator-3.70.4-02.jar
登录 Nexus 导出数据: 设置 -> System -> Tasks -> Create task -> Admin - Export databases for backup
任务创建后点击Run,即可在 /home/nexus/backup 目录下看到备份文件
123456ll /home/nexus/backup-rw-rw-r-- 1 nexus nexus 121066 Sep 8 07:25 analytics-2025-09-08-07-25-57-3.70.4-02.bak-rw-rw-r-- 1 nexus nexus 19349428 Sep 8 07:25 component-2025-09-08-07-25-57-3.70.4-02.bak-rw-rw-r-- 1 nexus nexus 266208 Sep 8 07:25 config-2025-09-08-07-25-57-3.70.4-02.bak-rw-r--r-- 1 nexus nexus 56809625 Sep 8 06:41 nexus-db-migrator-3.70.4-02.jar-rw-rw-r-- 1 nexus nexus 132802 Sep 8 07:25 security-2025-09-08-07-25-57-3.70.4-02.bak
使用迁移工具生成H2数据库文件,官网参考资料: Migrating From OrientDB to H2
12345678# 开始迁移前需要先关闭 nexus 服务sudo systemctl stop nexus# ~/nexus3/bin/nexus stop# 进入备份目录cd /home/nexus/backup# 这里要使用 OpenJDK 11 运行,根据需要适当调整内存参数java -Xmx2G -Xms2G -XX:+UseG1GC -jar nexus-db-migrator-3.70.4-02.jar --migration_type=h2# 运行后会提示你迁移数据库前需要先关闭 nexus 服务,我们输入 y 继续
运行成功后会生成 nexus.mv.db,将其移动到 /home/nexus/sonatype-work/nexus3/db/ 目录下
1mv nexus.mv.db /home/nexus/sonatype-work/nexus3/db/
编辑/home/nexus/sonatype-work/nexus3/etc/nexus.properties 文件,添加如下内容
12# enable db h2nexus.datastore.enabled=true
启动 nexus,此时我们就完成了 从 3.29.2-02 到 nexus-3.70.4-02 的升级
12sudo systemctl start nexus# ~/nexus3/bin/nexus start
从 nexus-3.70.4-02 升级到 nexus-3.83.2-01
这个升级就比较简单了,和我们此前的升级方式是一样的,下载解压后替换安装目录即可,这里要注意,从nexus-3.71.0+开始仅支持jdk17,所以需要提前安装好jdk17,另外从nexus-3.78.0开始,Nexus 内置了openjdk17,所以不需要再额外安装jdk。
nexus-3.83.2-01 是目前的最新版,最新版下载页面,历史版本下载页面地址
1234567891011# 关闭 Nexus 服务sudo systemctl stop nexus# ~/nexus3/bin/nexus stopcd ~curl -O https://download.sonatype.com/nexus/3/nexus-3.83.2-01-linux-x86_64.tar.gztar -zxvf nexus-3.83.2-01-linux-x86_64.tar.gzrm -f nexus3ln -s nexus-3.83.2-01 nexus3# 启动 Nexus,nexus-3.83.2-01 自带 openjdk17,所以不需要单独安装 openjdksudo systemctl start nexus# ~/nexus3/bin/nexus start