tlias智能学习辅助系统--Maven 高级-私服介绍与资源上传下载
目录
1. 什么是 Maven 私服?
2. 私服基本原理
3. 配置 Maven 私服
4. 上传 Jar 到私服
5. 从私服下载依赖
6. 总结
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
-
使用:添加依赖 + 构建运行
-