Nexus 3.x 是当前最稳妥的选择,安装需确保 JDK 11+、解压启动并配置远程索引和 settings.xml,常见问题为端口不通、索引未启用及 ID 不匹配。

直接上结论:Nexus 3.x 是当前最稳妥的选择,不建议用 Nexus 2(已停止维护),安装核心就三步——装好 JDK、解压启动、改配置项,但多数人卡在端口访问不通、远程索引没开、settings.xml 配错这三处。
确认 JDK 版本并设好 JAVA_HOME
Nexus 3.50+ 要求 JDK 11 或更高版本(JDK 8 已不支持)。别只跑 java -version 看输出,还要验证 javac 是否可用、JAVA_HOME 是否指向 jdk-xx 目录而非 jre:
- 运行
echo $JAVA_HOME,输出应类似/usr/lib/jvm/java-11-openjdk-amd64,不能是/usr/lib/jvm/java-11-openjdk-amd64/jre - 若未设置,编辑
~/.bashrc或/etc/profile,添加:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64export PATH=$JAVA_HOME/bin:$PATH - 执行
source ~/.bashrc后,再运行java -version和javac -version必须都成功
解压 Nexus 并修改关键配置文件
下载 Nexus OSS 最新版(如 nexus-3.56.0-01-unix.tar.gz)后,解压路径建议固定在 /opt/nexus,避免空格或中文路径:
- 解压命令:
tar zxvf nexus-3.56.0-01-unix.tar.gz -C /opt/ - 修改内存参数(防 OOM):
/opt/nexus-3.56.0-01/bin/nexus.vmoptions中调大堆内存,例如把-Xms2703m改成-Xms2g,-Xmx2703m改成-Xmx4g - 改监听地址(可选):
/opt/nexus-3.56.0-01/etc/nexus-default.properties中确保application-host=0.0.0.0(允许外网访问),端口默认为application-port=8081 - 不要手动改
RUN_AS_USER—— Nexus 3 默认拒绝 root 启动,创建普通用户(如nexus)并赋权更安全
启动 Nexus 并初始化仓库组
启动后别急着浏览器访问,先看日志是否真正就绪。常见“页面打不开”不是服务没起,而是没等完索引加载:
- 用普通用户启动:
sudo -u nexus /opt/nexus-3.56.0-01/bin/nexus start - 检查状态:
/opt/nexus-3.56.0-01/bin/nexus status,再查日志:tail -f /opt/sonatype-work/nexus3/log/nexus.log - 看到
Started Sonatype Nexus OSS且无 ERROR 后,再访问http://:8081 - 首次登录后,必须去
Administration > Support > System Information页面查看admin.password文件路径(如/opt/sonatype-work/nexus3/admin.password),用该文件内容重置密码 - 关键一步:进
Repository > Repositories,找到maven-central,点进去把Download Remote Indexes设为true,然后右键 →Repair Index;否则搜索不到中央库的包
配置 Maven 的 settings.xml 并验证上传
本地 Maven 不连 Nexus,90% 是因为 settings.xml 里 <server></server> 的 id 和 <repository></repository> 的 id 对不上,或者没配 <mirror></mirror>:
- 在
~/.m2/settings.xml的<servers></servers>块中加:<server><id>nexus</id><username>admin</username><password>你刚设的新密码</password></server> - 在
<mirrors></mirrors>块中加(全局代理所有请求):<mirror><id>nexus</id><mirrorOf>*</mirrorOf><url>http://:8081/repository/maven-public/</url></mirror> - 验证:新建一个空 Maven 项目,执行
mvn archetype:generate -DgroupId=test -DartifactId=test-app -DarchetypeArtifactId=maven-archetype-quickstart,观察是否从maven-public下载依赖 - 上传 jar 包时,pom.xml 中
<distributionManagement>的<id>必须和settings.xml里<server>的id完全一致,否则报 401
最容易被忽略的是:Nexus 3 的仓库路径不是 /nexus/content/groups/public/(那是 Nexus 2 的),而是 /repository/maven-public/;另外,Repair Index 操作一次不够,尤其第一次同步可能要等 10–20 分钟,期间日志里反复出现 Indexing repository maven-central 才算正常。


















