配置操作
通过 mirrorOf 配置maven加速源
在maven的settings.xml文件里增加以下配置
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
原理浅析
仓库配置
拉取代码的仓库配置pom.xml
<repositories>
<repository>
<id>repo1</id>
<name>remote repository</name>
<url>http://localhost:9999/content1/</url>
</repository>
<repository>
<id>repo2</id>
<name>remote repository</name>
<url>http://localhost:9999/content2/</url>
</repository>
</repositories>
发布代码的仓库配置pom.xml
<!-- distributionManagement 配置发布时候的路径 -->
<distributionManagement>
<!-- repository 配置上传发布版本时的路径 -->
<repository>
<id>releases</id>
<name>Release Repository</name>
<url>http://localhost:9999/repositories/releases/</url>
</repository>
<!-- snapshotRepository 配置上传快照版本时的路径 -->
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot Repository</name>
<url>http://localhost:9999/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
仓库密码配置settings.xml
<!--maven连接nexus需要验证用户名和密码-->
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
- < repository >节点下的< id >对应setting.xml文件中的server的id
- 需要在settings里配置对应仓库的账号密码,如果不配置则会提示401信息
- jar包上传时maven会根据版本号里是否包含snapshots来判断是不是属于快照版本
- 上传正式版本,pom.xml文件version中不能有SNAPSHOT,快照版本才有
maven仓库三种类型
-
本地 (local)
本地仓库就是本地maven在settings文件里属性配置的路径地址
-
中央 (central)
- 中央仓库就是由maven社区提供的仓库,包含了大量常用的库。
- 这个仓库由maven社区管理维护
- 不需要配置,默认就可以读取
- 需要通过网络才可以访问
-
远程 (remote)
远程仓库就是开发人员自己定制的仓库,也就是常说的私服
maven 依赖加载顺序
-
步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
-
步骤 2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库中以备将来引用。
-
步骤 3 - 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
-
步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。
mirrorOf 配置说明
-
匹配所有远程仓库。
<mirrorOf>*</mirrorOf> -
匹配所有远程仓库,使用
localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。<mirrorOf>external:*</mirrorOf> -
匹配仓库
repo1和repo2,使用逗号分隔多个远程仓库。<mirrorOf>repo1,repo2</mirrorOf> -
匹配所有远程仓库,
repo1除外,使用感叹号将仓库从匹配中排除。<mirrorOf>*,!repo1</miiroOf>
加速原理
mirrorOf 的配置重新定义了远程仓库地址
即上述配置中将mirrorOf配置为central 相当于将中央仓库路径改到了阿里云的仓库
maven 加载jar包指令
# 重新加载所有的jar
mvn dependency:sources
# 生成idea项目配置文件
mvn -U idea:idea