搭建企业级Maven私服:Nexus3快速指南
在软件开发中,Maven私服是不可或缺的工具,它能有效管理项目依赖、加速构建过程、统一团队内部组件发布,并提升安全性。本文将详细指导您如何快速安装Nexus Repository Manager 3,并配置常用的仓库类型及Maven客户端,实现高效的内部依赖管理和构件发布。
Nexus3环境准备
我们将使用Docker Compose来部署Nexus3,这能提供极大的便利性和环境隔离。
1.1. 克隆项目仓库
首先,从GitHub克隆包含Nexus3 Docker Compose配置的仓库。
1 | 如果在国内访问GitHub较慢,可以考虑使用Gitee镜像地址: |
1.2. 进入Nexus3目录
克隆完成后,进入docker-stack/nexus3
目录。
1 | cd docker-stack/nexus3 |
1.3. 准备环境变量文件
复制 .env.example
文件为 .env
,这里通常会定义Nexus的数据卷路径、端口映射等。
1 | cp .env.example .env |
1.4. 启动Nexus3容器
使用docker-compose
在后台启动Nexus3服务。
1 | docker-compose up -d |
启动可能需要一些时间,Nexus3首次启动会进行初始化。
获取Nexus3管理员密码
Nexus3首次启动时会生成一个随机的管理员密码,我们需要获取它来登录。
1 | docker-compose exec nexus3 cat /nexus-data/admin.password |
执行此命令后,终端会打印出管理员密码,请妥善保存。
访问Nexus3管理界面
在浏览器中输入http://${宿主机IP}:18081
(请将宿主机IP
替换为您的服务器IP地址或localhost
),进入Nexus3登录界面。
输入用户名为admin
,密码为您上一步获取到的密码,然后点击“Sign in”登录。登录后会提示您修改admin密码,建议按照提示进行操作。
配置Nexus3仓库
Nexus3支持多种仓库类型,我们将创建以下四种常用Maven仓库:
- lbs-central (Proxy):代理中央Maven仓库和其他公共仓库,如阿里云Maven。
- lbs-releases (Hosted):存储公司内部发布的Release版本构件。
- lbs-snapshots (Hosted):存储公司内部开发的Snapshot版本构件。
- lbs-public (Group):一个仓库组,将上述三个仓库整合在一起,方便Maven客户端配置。
点击左侧导航栏的“Settings”(齿轮图标),然后选择“Repositories”进入仓库管理页面。点击“Create repository”开始创建。
4.1. 创建 lbs-central (Proxy) 仓库
这个仓库将代理Maven中央仓库和阿里Maven仓库,加速依赖下载。
- 选择类型:
maven2 (proxy)
- 名称:
lbs-central
- 远程存储地址 (Remote storage):填写
https://maven.aliyun.com/repository/central
点击“Create repository”完成创建。
4.2. 创建 lbs-releases (Hosted) 仓库
这个仓库用于存储项目正式发布(Release)版本的构件。
- 选择类型:
maven2 (hosted)
- 名称:
lbs-releases
- Deployment policy(部署策略):
Allow deployments of release versions
点击“Create repository”完成创建。
4.3. 创建 lbs-snapshots (Hosted) 仓库
这个仓库用于存储项目开发中(Snapshot)版本的构件。
- 选择类型:
maven2 (hosted)
- 名称:
lbs-snapshots
- Deployment policy(部署策略):
Allow deployments of snapshot versions
点击“Create repository”完成创建。
4.4. 创建 lbs-public (Group) 仓库
这个仓库组将上述三个仓库(lbs-central, lbs-releases, lbs-snapshots)整合在一起,Maven客户端只需要配置这一个URL即可。
- 选择类型:
maven2 (group)
- 名称:
lbs-public
- 在“Group”配置中,将
lbs-central
、lbs-releases
、lbs-snapshots
移入“Members”列表中。请注意顺序,通常代理仓库在前。
点击“Create repository”完成创建。
至此,Nexus3的仓库配置已完成。
配置本地Maven的settings.xml
为了让本地Maven项目能够从Nexus3下载依赖并发布构件,我们需要修改Maven的全局配置文件settings.xml
。该文件通常位于C:\Users\YourUser\.m2\
(Windows)或~/.m2/
(Linux/macOS)目录下。
重要提示:
- 将
YOUR_PASSWORD
替换为Nexus3admin
用户的真实密码。 - 将
http://master:18081
替换为您的Nexus3实际访问地址,例如http://192.168.X.X:18081
。
1 |
|
配置项目Maven的pom.xml
在需要发布到私服的Maven项目的pom.xml
文件中,添加<distributionManagement>
标签,指定Release和Snapshot版本分别发布到哪个Nexus仓库。
重要提示:
id
必须与settings.xml
中<servers>
下定义的<server>
的id
完全一致。url
必须是对应的Nexus仓库的实际URL。
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
验证测试Nexus3配置
完成Maven配置后,我们可以尝试部署一个项目到Nexus3来验证配置是否成功。
7.1. 执行Maven部署命令
打开您的IDE(如IntelliJ IDEA),在终端或Maven工具窗口中执行以下命令。deploy
命令会将项目构件发布到distributionManagement
中配置的私服仓库。
1 | mvn clean deploy -Dmaven.test.skip=true |
-Dmaven.test.skip=true
参数用于跳过单元测试,加快部署过程。
7.2. 查看Maven构建日志
观察IDE的Maven构建日志。如果部署成功,您会看到类似“BUILD SUCCESS”的提示,并且日志中会显示上传构件到Nexus3的URL信息。
7.3. 登录Nexus3验证仓库
登录Nexus3管理界面,点击左侧导航栏的“Browse”,然后选择您发布到的仓库(例如,如果您发布的是Snapshot版本,则选择lbs-snapshots
)。您应该能看到刚刚部署的构件已成功出现在列表中。
恭喜您!至此,您已成功搭建并配置了企业级的Maven私服Nexus3,并完成了Maven客户端的配置和构件的发布验证。现在,您的团队可以更高效地管理和共享内部构件了。