【业务功能篇80】Springboot项目 maven配置仓库镜像settings文件分析

news/2025/1/15 18:04:24/

项目中我们需要依赖许多包,那么就涉及到maven配置文件,我们需要配置settings.xml文件,这里面会配置我们的本地仓库localRepository ,远程仓库:仓库会有我们的依赖仓库repository和插件依赖仓库pluginRepository, mirror镜像仓库
依赖路径:工程优先去本地仓库找依赖—》 没找到就到配置文件中的mirror镜像仓库–》然后再依次去找repository、pluginRepository依赖

标签解释

localRepository 标签

<!-- 这个标签表示下载的jar,包保存到本地具体目录-->
<localRepository> </localRepository>

servers 标签

servers标签是一个大标签,主要作用于上传操作,保存仓库用户 和 仓库密码的地方

server 标签

server标签在 servers内,每个server标签表示一个仓库用户,servers标签可以包含多个server标签

  <servers><!-- 仓库用户信息配置 可以配置多个--><server><!-- 这里的 <id> 标签的值可以自定义,但是一定要与pom.xml文件内的 <snapshotRepository>(或者<repository>)标签下的<id>标签值一致 --><id>nexus-snapshot</id><!-- 仓库的用户名 (注意:不是自己的域用户名)--><username>zfl789</username><!-- 仓库的密码 (注意:不是自己的域密码,这里一定不要写明文密码)--><password>WmZsMTgyNzY3MzUxNjEhIQ</password></server><!-- 仓库用户信息配置 2--><server><id>nexus-release</id><username>zfl789</username><password>WmZsMTgyNzY3MzUxNjEhIQ</password></server></servers>

mirrors 标签

mirrors标签用于配置镜像仓库,以提高Maven构建的速度和稳定性
注: mirrors标签和repositories、pluginRepositories标签,都是配置远程仓库的标签。但是作用不一样。maven去远程仓库寻找的时候,优先寻找 mirrors标签下的远程仓库,其次才是另外两个

mirror 标签

mirror标签在 mirrors标签内,mirrors标签可以包含多个mirror标签,但一般建议只配置一个

mirrorOf 标签

mirrorOf标签表示要替换的远程仓库的ID集合
(远程仓库的ID指的是,repository标签【或者pluginRepository标签】下的id标签内的值)

  <mirrors><mirror><id>central</id><mirrorOf>central</mirrorOf><url>https://cmc.centralrepo.rnd.huawei.com/artifactory/maven-central-repo/</url></mirror></mirrors>

mirrorOf常见值的说明

  1. central
当mirrorOf的值为 central时,表示要替换中心仓。settings.xml文件有默认的中心仓(镜像仓库)地址是 maven官网地址 https://maven.apache.org。综上所述,所以当值为 central 时候替换的实际上是默认的 maven官网地址。

注:如果没有配置 mirrors标签,那么当maven去远端找包的时候,第一步依旧是先寻找 镜像仓库(中心仓库)。由于没有配置mirrors标签的原因,那么默认的 镜像仓库(中心仓库) 就是 https://maven.apache.org 地址,这也是为什么没有配置 https://maven.apache.org 地址,但是查看日志时候,发现有这个maven官方仓库的原因。

  1. *
* 表示 不止替换 central (中心仓库),也替换 <repository></repository> 标签和 <pluginRepository> </pluginRepository> 标签内的所有仓库。也就是说,当 mirrorOf的值为 *的时候,只有一个远端仓库地址。
  1. ![远程仓库的id]
    ![远程仓库的id] 值主要配合 * 进行使用,表示根据仓库ID值进行排除,被排除的这个仓库不进行替换。多个值之间用英文的逗号隔开。

repositories标签

repositories标签是用来配置远程仓库地址的,一个repositories标签包含多个repository标签。
注:repositories与pluginRepositories虽然都是配置远程仓库地址的标签。但是pluginRepositories配置的是插件下载地址,repositories配置的是依赖的下载地址。因此,在新增仓库时候,如果你无法区分当前的jar包是插件还是依赖,就同时配置pluginRepositories和repositories。

repository标签

repository标签主要由 id和url组成,每个id不能重复,url是远程仓库的地址。

<repositories><!-- 自研仓 --><repository><id>product_maven</id><url>https://cmc.centralrepo.rnd.huawei.com/artifactory/product_maven/</url></repository><!-- 开源中心仓 --><repository><id>maven-central-repo</id><url>https://cmc.centralrepo.rnd.huawei.com/artifactory/maven-central-repo/</url></repository>
</repositories>

snapshots标签和releases标签(repository下)

snapshots标签和releases标签是 repository标签下的子标签,主要用于控制依赖 release版本和snapshot版本的下载。

<repository><id>maven-central-repo</id><url>https://cmc.centralrepo.rnd.huawei.com/artifactory/maven-central-repo/</url><snapshots><!-- 当enabled值为true的时候,表示下载snapshot版本的包。当为false的时候表示不下载snapshot版本的包。 --><enabled>false</enabled></snapshots><releases><!-- 当enabled值为true的时候,表示下载releases版本的包。当为false的时候表示不下载releases版本的包。 --><enabled>true</enabled></releases>
</repository>

注:有的时候,明明配置了正确的仓库地址,但是发现包还是没有下载成功,这个时候就要检查releases和snapshots标签,是否做了下载限制

pluginRepositories标签

pluginRepositories标签是用来配置远程仓库地址的,一个pluginRepositories标签包含多个pluginRepository标签。
注:repositories与pluginRepositories虽然都是配置远程仓库地址的标签。但是pluginRepositories配置的是插件下载地址,repositories配置的是依赖的下载地址。因此,在新增仓库时候,如果你无法区分当前的jar包是插件还是依赖,就同时配置pluginRepositories和repositories。

pluginRepository标签

pluginRepository标签主要由 id和url组成,每个id不能重复,url是远程仓库的地址。

<pluginRepositories><pluginRepository><id>maven-central-repo-plugin</id><!-- 开源中心仓 --><url>https://cmc.centralrepo.rnd.huawei.com/artifactory/maven-central-repo/</url> </pluginRepository><pluginRepository><id>product-maven-plugin</id><!-- 自研制品中心仓地址--><url>https://cmc.centralrepo.rnd.huawei.com/artifactory/product_maven/</url> </pluginRepository>
</pluginRepositories>

snapshots标签和releases标签(pluginRepository下)

snapshots标签和releases标签是 pluginRepository标签下的子标签,主要用于控制依赖 release版本和snapshot版本的下载。

<pluginRepositories><pluginRepository><id>product-maven-plugin</id><url>https://cmc.centralrepo.rnd.huawei.com/artifactory/product_maven/</url><!-- 当enabled值为true的时候,表示下载releases版本的包。当为false的时候表示不下载releases版本的包。 --><releases><enabled>true</enabled></releases><!-- 当enabled值为true的时候,表示下载snapshot版本的包。当为false的时候表示不下载snapshot版本的包。 --><snapshots><enabled>false</enabled></snapshots></pluginRepository>
</pluginRepositories>

注:有的时候,明明配置了正确的仓库地址,但是发现包还是没有下载成功,这个时候就要检查releases和snapshots标签,是否做了下载限制


http://www.ppmy.cn/news/1060300.html

相关文章

【Spring Boot】SpringBoot实现社交网站用户主页的IP归属地显示功能代码

下面是一个简单的Spring Boot用户主页IP归属地显示功能的代码示例&#xff1a; 首先需要引入依赖&#xff1a; <dependency><groupId>com.maxmind.geoip2</groupId><artifactId>geoip2</artifactId><version>2.7.0</version> </…

Nmap扫描工具:详解每个关键参数的用途和意义

Nmap端口扫描 Nmap端口扫描目标规范&#xff1a;-iL 从一个文件中扫描主机列表--exclude 排除一些远程主机后再扫描--excludefile 排除文件中的列表 端口扫描状态&#xff1a;open(开放的)closed(关闭的)filtered(被过滤的)unfiltered(未被过滤的)open|filtered(开放或者被过滤…

python替换—Series.replace()与Series.str.replace()的区别及为何replace()无效的解决方法

文章目录 前言一、Series.replace()方法二、Series.str.replace()方法三、replace()与str.replace() 使用方法的区别四、常见的坑&#xff1a;python中replace方法不起作用 前言 在Pandas中&#xff0c;Series是一个由一维数组表示的DataFrame列&#xff0c;而replace和str.re…

Linux学习之NFS服务

《Linux 环境下 NFS 服务安装及配置使用》是一篇参考博客。 /etc/exports是NFS服务的配置文件&#xff0c;文件中的内容格式为&#xff1a; 共享目录的路径 允许访问的NFS客户端(共享权限参数1,共享权限参数2,共享权限参数3...)共享权限参数罗列如下&#xff1a; 参数作用ro只…

我裸辞去面试大公司python岗位了!

最近换工作了&#xff0c;坐标上海&#xff0c;裸辞&#xff0c;之前早有前辈们说过&#xff0c;“裸辞一时爽,一直裸辞一直爽”&#xff0c;这话一点不假&#xff0c;裸辞你要面临没有收入来源&#xff0c;但是每天眼睁睁看着各种花销不断支出的煎熬&#xff0c;我主要是觉得一…

深入解析:树结构及其应用

文章目录 学习树的基本概念理解树的遍历方式学习堆和优先队列的应用案例分析&#xff1a;使用堆进行Top K元素的查找结论 &#x1f389;欢迎来到数据结构学习专栏~深入解析&#xff1a;树结构及其应用 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈…

UltralSO软碟通制作Linux系统盘

第一步&#xff1a; 下载镜像 阿里云下载地址&#xff1a;https://mirrors.aliyun.com/centos-vault/ 按照需求选择系统版本&#xff0c;我这要求安装CentOS7.5的系统&#xff0c;我以CentOS7.5为例 第二步&#xff1a; 下载UltralSO软件 官网下载地址&#xff1a;https://cn.…

梳理系统学习R语言1-R语言实战-使用ggplot进行高阶绘图

以下为书中代码&#xff0c;会添加一些理解 library("ggplot2") ggplot(datamtcars,aes(xwt,ympg))geom_point()geom_point(pch17,color"blue",size2)geom_smooth(method"lm",color"red",linetype2)labs(title"Automobile Data&…