目录
1. 什么是 Maven 私服?
Maven 私服(Private Repository)是一个存放构件的仓库服务器,通常部署在公司或团队内部,用来:
缓存中央仓库资源,节省下载时间,减少外网依赖
保存公司内部的私有构件(不能公开到中央仓库)
提高构建速度与安全性
常见私服软件:
Nexus Repository Manager(最常用)
Apache Archiva
JFrog Artifactory
2. 私服基本原理
Maven 获取依赖的顺序:
本地仓库
私服(如 Nexus)
中央仓库
私服不仅能下载依赖,还能上传自己的 Jar 包,供团队内部使用。
3. 配置 Maven 私服
文件名:~/.m2/settings.xml
语言类型:XML(复制直接可用)
<settings>
<!-- 私服认证信息 -->
<servers>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<!-- 镜像配置(让所有请求走私服) -->
<mirrors>
<mirror>
<id>nexus-mirror</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
</settings>
4. 上传 Jar 到私服
文件名:pom.xml
语言类型:XML
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo-lib</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<distributionManagement>
<repository>
<id>maven-releases</id>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
Java 示例文件:src/main/java/com/example/HelloLib.java
语言类型:Java
package com.example;
public class HelloLib {
public static String sayHello(String name) {
return "Hello, " + name + "!";
}
}
上传命令:
mvn clean deploy
运行后 Maven 会把 jar 上传到 Nexus 私服的对应仓库。
5. 从私服下载依赖
文件名:pom.xml
(另一个项目用来依赖上面的 Jar)
语言类型:XML
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo-app</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>demo-lib</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
Java 示例文件:src/main/java/com/example/App.java
语言类型:Java
package com.example;
public class App {
public static void main(String[] args) {
System.out.println(HelloLib.sayHello("Maven Private Repo"));
}
}
运行:
mvn clean package
java -cp target/demo-app-1.0.0.jar com.example.App
输出结果:
Hello, Maven Private Repo!
6. 总结
私服作用:缓存依赖 + 上传私有构件
关键配置:
settings.xml
:账号、密码、镜像pom.xml
:distributionManagement
上传地址
命令:
上传:
mvn clean deploy
使用:添加依赖 + 构建运行