快速搭建Maven仓库服务
一、Nexus Repository Manager(推荐方案)
1. Docker快速部署
# 拉取Nexus3镜像
docker pull sonatype/nexus3# 启动容器(端口映射为8081)
docker run -d -p 8081:8081 --name nexus sonatype/nexus3# 查看启动日志
docker logs -f nexus
2. 初始配置
-
访问管理界面:
打开浏览器访问http://localhost:8081
,点击右上角 Sign in。 -
获取默认密码:
进入Nexus容器查找初始密码:docker exec -it nexus sh cat /nexus-data/admin.password
输入密码后,按提示修改为自定义密码。
-
创建Maven仓库:
- 点击 Settings → Repositories → Create Repository。
- 选择 Maven2 (hosted) 类型,配置:
- Name:
maven-releases
(发布库)或maven-snapshots
(快照库) - Version Policy:
Release
或Snapshot
- Deployment Policy:
Allow Redeploy
(允许重复部署)
- Name:
3. Maven集成配置
-
修改
settings.xml
(全局配置):<settings><servers><server><id>nexus</id><username>admin</username><password>自定义密码</password></server></servers><mirrors><mirror><id>nexus</id><mirrorOf>*</mirrorOf><url>http://localhost:8081/repository/maven-public/</url></mirror></mirrors> </settings>
-
项目
pom.xml
配置(发布到Nexus):<distributionManagement><repository><id>nexus</id><url>http://localhost:8081/repository/maven-releases/</url></repository><snapshotRepository><id>nexus</id><url>http://localhost:8081/repository/maven-snapshots/</url></snapshotRepository> </distributionManagement>
4. 部署与验证
- 部署构件到Nexus:
mvn clean deploy
- 验证仓库内容:
访问http://localhost:8081/#browse/browse:maven-public
,确认构件已上传。
二、Apache Archiva(轻量级方案)
1. 手动安装
# 下载Archiva
wget https://archive.apache.org/dist/archiva/2.2.9/binaries/apache-archiva-2.2.9-bin.zip
unzip archiva-2.2.10-standalone.zip
cd archiva-2.2.10/bin# 启动服务(调试模式)
./archiva-debug.sh run
2. 访问管理界面
- 打开
http://localhost:8080/archiva
,默认账号admin
/admin
。 - 创建Maven仓库(hosted类型),配置代理仓库(如阿里云Maven中央仓库)。
3. Maven集成
- 修改
settings.xml
:<mirrors><mirror><id>archiva</id><url>http://localhost:8080/repository/internal/</url><mirrorOf>*</mirrorOf></mirror> </mirrors>
三、手动搭建(Nginx+文件系统)
1. 创建本地仓库目录
mkdir -p /opt/maven-repo
chmod -R 755 /opt/maven-repo
2. Nginx配置
server {listen 80;server_name localhost;location / {root /opt/maven-repo;autoindex on; # 启用目录列表}
}
3. Maven配置
- 修改
settings.xml
:<settings><localRepository>/opt/maven-repo</localRepository><mirrors><mirror><id>local-repo</id><url>http://localhost/</url><mirrorOf>*</mirrorOf></mirror></mirrors> </settings>
四、方案对比与推荐
方案 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
Nexus | 企业级/团队级私有仓库 | 功能全面,支持代理、权限管理、CI/CD集成 | 资源占用较高,学习成本中等 |
Archiva | 小型团队/个人开发者 | 轻量级,配置简单 | 社区活跃度低,扩展性有限 |
手动搭建 | 临时测试/极简需求 | 零成本,快速上手 | 缺乏高级功能(权限、缓存加速) |
最终推荐:
优先选择 Nexus Repository Manager,通过Docker部署实现开箱即用,兼顾企业级功能与易用性。若资源有限,可尝试手动搭建方案作为临时解决方案。