一、Nexus的核心价值与使用场景
Nexus作为一款强大的仓库管理工具,不仅能代理Maven中央仓库、加速依赖下载,还能统一管理团队内部的构件,解决以下痛点:
- 节省带宽:避免团队成员重复从外网下载依赖,缓存常用资源;
- 内网协作:在无外网权限的环境中,通过私服实现依赖共享;
- 版本管理:支持发布内部项目的Release/Snapshot版本,统一管控第三方JAR。
二、Nexus搭建全流程详解
1. 安装方式:传统部署 vs Docker容器化
-
传统部署(Windows/Linux)
下载Nexus压缩包(如nexus-2.14.4-03-bundle.tar.gz
),解压后运行bin/nexus install
安装服务,通过nexus start
启动。访问http://localhost:8081/nexus
,默认账号admin/admin123
。
关键配置:
修改端口或路径需编辑conf/nexus.properties
,调整application-port
和nexus-webapp-context-path
。 -
Docker一键部署
推荐使用官方镜像,快速启动:docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3
首次登录需从容器内
admin.password
文件获取初始密码。
2. 构建索引与仓库配置
新安装的Nexus无法直接搜索JAR包,需手动构建索引:
- 从中央仓库下载
nexus-maven-repository-index.gz
和.properties
文件; - 使用
indexer-cli-5.1.1.jar
生成索引文件; - 替换
sonatype-work/nexus/indexer/central-ctx
目录内容并重启服务。
3. 仓库类型解析
- Hosted:存储内部项目构建(如Releases/Snapshots);
- Proxy:代理远程仓库(如阿里云镜像);
- Group:聚合多个仓库,对外提供统一访问入口(推荐开发使用)。
三、Nexus实战:从配置到发布
1. Maven镜像配置
在settings.xml
中添加镜像,强制所有请求走私服:
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
2. 发布项目到Nexus
- POM配置:指定Release/Snapshot仓库地址:
<distributionManagement> <repository> <id>releases</id> <url>http://localhost:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://localhost:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
- 认证配置:在
settings.xml
中配置服务器账号密码。
3. 手动上传第三方JAR
通过Nexus界面选择3rd party
仓库,填写GAV坐标并上传文件,解决Oracle驱动等版权限制依赖问题。
四、最佳实践与进阶技巧
- 代理阿里云镜像:替换默认Central仓库为国内源,加速下载;
- 权限管理:为不同角色分配仓库读写权限,避免误操作;
- 清理策略:定期清理过期Snapshot版本,节省存储空间。