Skip to content

部署 Maven 私有服务器

Maven 私有服务器(也称为 Maven 仓库管理器)可以用于管理企业内部 Java 依赖库。以下是几种在 Windows 上部署 Maven 私有服务器的方法:

方法一:使用 Nexus Repository OSS(推荐)

Nexus 是功能最全面的 Maven 仓库管理工具,支持多种包格式。

安装步骤:

  1. 下载 Nexus
  1. 解压并安装
cmd
# 解压到指定目录(建议路径不要包含空格)
Expand-Archive -Path nexus-3.x.y-xx-win64.zip -DestinationPath C:\MavenServer
  1. 配置环境变量
  • 添加NEXUS_HOME环境变量指向安装目录
  • %NEXUS_HOME%\bin添加到 PATH
  1. 安装为 Windows 服务
cmd
cd C:\MavenServer\nexus-3.x.y-xx\bin
nexus.exe /install
  1. 启动服务
cmd
nexus.exe /start
# 或通过服务管理器启动"Nexus Repository Manager"服务
  1. 初始访问
  • 访问 http://localhost:8081
  • 默认管理员账号:admin,密码在C:\MavenServer\sonatype-work\nexus3\admin.password

方法二:使用 Artifactory OSS

JFrog Artifactory 是另一个流行的仓库管理工具。

安装步骤:

  1. 下载 Artifactory
  1. 运行安装程序
  • 按向导完成安装
  • 默认安装目录:C:\Program Files\JFrog\Artifactory
  1. 启动服务
  • 安装后会自动创建并启动 Windows 服务
  • 也可以通过服务管理器控制"Artifactory"服务
  1. 初始访问
  • 访问 http://localhost:8082/ui/
  • 默认账号:admin/password

方法三:使用 Apache Archiva

Archiva 是 Apache 提供的轻量级 Maven 仓库管理器。

安装步骤:

  1. 下载 Archiva
  1. 解压并运行
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
  1. 安装为服务(可选)
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
  1. 初始访问
  • 访问 http://localhost:8080/
  • 默认账号:admin/admin123

配置 Maven 客户端

  1. 配置 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>
  1. 部署构件到私有仓库
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 为例)

  1. 创建代理仓库
  • 连接到 Maven 中央仓库和其他公共仓库
  1. 创建宿主仓库
  • 用于存储内部发布的构件
  • 通常分为 Release 和 Snapshot 两个仓库
  1. 创建仓库组
  • 将多个仓库合并为一个统一访问入口

安全配置建议

  1. 启用 HTTPS
  • 使用反向代理(如 Nginx)配置 SSL
  • 或直接配置 Nexus/Artifactory 的 HTTPS 支持
  1. 访问控制
  • 创建不同角色的用户(开发人员、部署人员、管理员)
  • 限制匿名访问
  1. 定期备份
  • 备份sonatype-work$ARCHIVA_BASE目录
  • 备份数据库(如果使用外部数据库)

性能优化

  1. 存储配置
  • 将仓库数据存储在快速磁盘(SSD)
  • 对大仓库使用专用存储设备
  1. JVM 调优
cmd
# 编辑nexus.vmoptions(Nexus)或artifactory.default(Artifactory)
-Xms2g
-Xmx4g
-XX:MaxDirectMemorySize=2g
  1. 定期维护
  • 清理未使用的快照版本
  • 重建元数据索引

对于大多数企业环境,Nexus Repository OSS 提供了最佳的功能平衡;Artifactory OSS 也是一个强大的替代选择;而 Archiva 适合小型团队或简单需求。