部署 Maven 私有服务器
Maven 私有服务器(也称为 Maven 仓库管理器)可以用于管理企业内部 Java 依赖库。以下是几种在 Windows 上部署 Maven 私有服务器的方法:
方法一:使用 Nexus Repository OSS(推荐)
Nexus 是功能最全面的 Maven 仓库管理工具,支持多种包格式。
安装步骤:
- 下载 Nexus
- 从Sonatype 官网下载 Windows 版本(.zip 格式)
- 解压并安装
cmd
# 解压到指定目录(建议路径不要包含空格)
Expand-Archive -Path nexus-3.x.y-xx-win64.zip -DestinationPath C:\MavenServer
- 配置环境变量
- 添加
NEXUS_HOME
环境变量指向安装目录 - 将
%NEXUS_HOME%\bin
添加到 PATH
- 安装为 Windows 服务
cmd
cd C:\MavenServer\nexus-3.x.y-xx\bin
nexus.exe /install
- 启动服务
cmd
nexus.exe /start
# 或通过服务管理器启动"Nexus Repository Manager"服务
- 初始访问
- 访问
http://localhost:8081
- 默认管理员账号:
admin
,密码在C:\MavenServer\sonatype-work\nexus3\admin.password
中
方法二:使用 Artifactory OSS
JFrog Artifactory 是另一个流行的仓库管理工具。
安装步骤:
- 下载 Artifactory
- 从JFrog 官网下载 Windows 版本
- 运行安装程序
- 按向导完成安装
- 默认安装目录:
C:\Program Files\JFrog\Artifactory
- 启动服务
- 安装后会自动创建并启动 Windows 服务
- 也可以通过服务管理器控制"Artifactory"服务
- 初始访问
- 访问
http://localhost:8082/ui/
- 默认账号:
admin
/password
方法三:使用 Apache Archiva
Archiva 是 Apache 提供的轻量级 Maven 仓库管理器。
安装步骤:
- 下载 Archiva
- 从Apache Archiva 官网下载 Windows 版本
- 解压并运行
cmd
Expand-Archive -Path apache-archiva-2.x.x-bin.zip -DestinationPath C:\MavenServer
cd C:\MavenServer\apache-archiva-2.x.x\bin
archiva.bat
- 安装为服务(可选)
cmd
prunsrv.exe //IS//Archiva --DisplayName="Apache Archiva" ^
--Description="Apache Archiva Maven Repository Manager" ^
--Startup=auto --Jvm=auto --Classpath=%ARCHIVA_HOME%\lib\* ^
--StartMode=jvm --StopMode=jvm ^
--StartPath=%ARCHIVA_HOME% --StartClass=org.apache.archiva.maven.indexer.ArchivaStart
- 初始访问
- 访问
http://localhost:8080/
- 默认账号:
admin
/admin123
配置 Maven 客户端
- 配置 settings.xml
xml
<settings>
<mirrors>
<mirror>
<id>my-nexus</id>
<name>My Nexus Repository</name>
<url>http://localhost:8081/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<servers>
<server>
<id>my-nexus</id>
<username>admin</username>
<password>your-password</password>
</server>
</servers>
</settings>
- 部署构件到私有仓库
xml
<!-- 在pom.xml中添加 -->
<distributionManagement>
<repository>
<id>my-nexus</id>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>my-nexus</id>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
然后运行:
cmd
mvn deploy
仓库类型配置(以 Nexus 为例)
- 创建代理仓库
- 连接到 Maven 中央仓库和其他公共仓库
- 创建宿主仓库
- 用于存储内部发布的构件
- 通常分为 Release 和 Snapshot 两个仓库
- 创建仓库组
- 将多个仓库合并为一个统一访问入口
安全配置建议
- 启用 HTTPS
- 使用反向代理(如 Nginx)配置 SSL
- 或直接配置 Nexus/Artifactory 的 HTTPS 支持
- 访问控制
- 创建不同角色的用户(开发人员、部署人员、管理员)
- 限制匿名访问
- 定期备份
- 备份
sonatype-work
或$ARCHIVA_BASE
目录 - 备份数据库(如果使用外部数据库)
性能优化
- 存储配置
- 将仓库数据存储在快速磁盘(SSD)
- 对大仓库使用专用存储设备
- JVM 调优
cmd
# 编辑nexus.vmoptions(Nexus)或artifactory.default(Artifactory)
-Xms2g
-Xmx4g
-XX:MaxDirectMemorySize=2g
- 定期维护
- 清理未使用的快照版本
- 重建元数据索引
对于大多数企业环境,Nexus Repository OSS 提供了最佳的功能平衡;Artifactory OSS 也是一个强大的替代选择;而 Archiva 适合小型团队或简单需求。