maven仓库中心mirrors配置详解
2023-12-15 18:10:49
一、repository
repository就是个仓库.
maven里有两种仓库,本地仓库和远程仓库。
远程仓库相当于公共的仓库,大家都能看到。
本地仓库是你本地的缓存副本,只有你看的到,主要起缓存作用。
当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。
如果有则直接返回,否则会向远程仓库请求,并被缓存到本地仓库。
远程仓库可以在工程的pom.xml文件里指定。
二、mirror
mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。
当maven需要到的依赖jar包不在本地仓库时, 就需要到远程仓库下载 .mirror可以拦截对远程仓库的请求 , 改变对目标仓库的下载地址.
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
此处指定多个mirrors镜像,镜像只会执行第一个位置mirror。
- 属性
1、id: 镜像的唯一标识;
2、name: 名称描述;
3、url: 地址;
4、mirrorOf: 指定镜像规则,什么情况下从镜像仓库拉取。其中, *: 匹配所有,所有内容都从镜像拉取;
external:*: 除了本地缓存的所有从镜像仓库拉取;
repo,repo1: repo或者repo1,这里的repo指的仓库ID;
*,!repo1: 除了repo1的所有仓库;
三、多仓库配置
2、在pom.xml的repositories标签中可以配置
maven如果发现本地仓库没有的依赖都会尝试从远程仓库拉取,按顺序并发请求多个远程仓库
<project>
<repositories>
</repositories>
</project>
1、在settings.xml的节点下配置多个profile
在profiles节点下配置多个profile,而且配置之后要激活。
<profiles>
<profile>
<id>boundlessgeo</id>
<repositories>
<repository>
<id>boundlessgeo</id>
<url>https://repo.boundlessgeo.com/main/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>aliyun</id>
<repositories>
<repository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>maven-central</id>
<repositories>
<repository>
<id>maven-central</id>
<url>http://central.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profiles>
通过配置activeProfiles子节点激活:
<activeProfiles>
<activeProfile>boundlessgeo</activeProfile>
<activeProfile>aliyun</activeProfile>
<activeProfile>maven-central</activeProfile>
</activeProfiles>
- 注意(重要)
当你的maven中的setting.xml配置文件里面关于mirror部分的<mirrorOf>配置为*的时候,pom里配的<repository>是不生效的。
总结
1、当你的项目拉取jar包时,大量的jar包来自于国内大型镜像,那就在mirror部分配上一个这个仓库地址,<mirrorOf>不要用*。如果还需要公司内部私服拉去jar,那就配置到<profiles>并且在<activeProfiles>里面激活配置,这里可以配置多个。
3、最后,如果只是某个项目需要拉去特定镜像仓库中的某些jar包,那就将其配置到项目根pom的 <repository>里。
链接:https://www.jianshu.com/p/a568133e29ea
文章来源:https://blog.csdn.net/vip_member888/article/details/134891893
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!