maven的settings.xml

news/2025/11/14 9:46:20/文章来源:https://www.cnblogs.com/smileblogs/p/19220571
 

  

<settings><localRepository>...</localRepository><servers><server>...</server><servers><mirrors><mirror>...</mirror></mirrors><profiles><profile>...</profile></profiles><activeProfiles><activeProfile>...</activeProfile>  <!-- 与 profile.id 相同 --></activeProfiles>
<settings>

  

<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\develop\maven\maven_repository</localRepository><!-- servers 标签                   --><!-- 作用:配置访问远程仓库所需的认证信息    --><!-- 用途:存储用户名、密码、私钥等安全信息  --><servers><!-- 公司内部私服认证 --><server><id>yl-nexus</id><username>admin</username><password>123456</password></server><!-- 阿里云私服认证 --><!-- ... --></servers><!-- mirrors 标签                   --><!-- 作用:配置仓库镜像,重定向仓库请求     --><!-- 用途:加速下载、替换默认中央仓库       --><mirrors><!-- 镜像私服1 --><mirror><id>nexus</id>    <!-- mirror 的 id 只需要在 mirrors 范围内唯一 --><mirrorOf>*</mirrorOf> <!-- mirror 通过 mirrorOf 属性来匹配要重定向的仓库,不依赖 id 匹配 --><name>yl maven mirror</name><url>http://192.168.80.158:8099/repository/yl/</url></mirror><!-- 镜像私服2 --><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven mirror</name><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors><!-- profiles 标签                               --><!-- 作用:定义不同的配置环境                       --><!-- 用途:管理不同环境下的仓库、属性、插件等配置       --><profiles><!-- 私服1环境 --><profile><id>yl</id><!-- 工作原理: 当 Maven 访问 id 为 yl-releases 的 repository 时,会自动查找 servers 中 id 相同的 server 配置,使用其中的认证信息进行身份验证。 --><repositories><!-- 私服1 --><repository><id>yl-nexus</id>    <!-- 与 server 的 id 必须相同,这样才能关联 --><name>ylmaven nexus repository</name><url>http://192.168.80.158:8099/repository/yl/</url><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories><pluginRepositories><!-- 插件私服1 --><pluginRepository><id>central</id><name>Nexus</name><url>http://192.168.80.158:8099/repository/yl/</url><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository></pluginRepositories></profile><!-- 公网环境 --><profile><id>public-env</id><repositories><repository><id>aliyun-repo</id><url>https://maven.aliyun.com/repository/public</url></repository></repositories></profile></profiles><!-- activeProfiles 标签      --><!-- 作用:激活指定的 profile    --><!-- 用途:确定当前使用哪个配置环境  --><activeProfiles><activeProfile>yl</activeProfile>  <!-- 与 profile.id 相同 --></activeProfiles></settings><!-- 
各配置元素的作用:server: 存储访问远程仓库的认证信息(用户名、密码)mirror: 重定向仓库请求到镜像仓库profile: 定义不同环境的配置集合repository: 声明项目依赖的仓库地址pluginRepository: 声明插件依赖的仓库地址activeProfile: 指定当前激活的 profileID 关联关系:1. server.id 与 repository.id 必须相同2. server.id 与 pluginRepository.id 必须相同3. mirror.id  只需要在 mirrors  范围内唯一,通过 mirrorOf 属性匹配仓库4. profile.id 只需要在 profiles 范围内唯一,通过 activeProfile 引用工作原理流程:1.Profile 激活: activeProfile 激活对应的 profile2.仓库解析:从激活的 profile 中获取 repository 和 pluginRepository 中声明的仓库3.认证匹配:如果仓库需要认证,根据 repository.id 和 pluginRepository.id 查找对应的 server.id4.仓库匹配:根据 mirrorOf 规则匹配仓库5.请求重定向:将原仓库请求转发到镜像地址6.依赖下载:从镜像仓库下载所需依赖总结:activeProfile -> profile(环境) -> repository/pluginRepository(仓库) -> server(私服仓库认证) -> mirror(具体访问地址)Maven 构建完整工作流程1. 构建启动阶段(1) 执行 mvn package 命令(2) Maven 读取 settings.xml 配置文件(3) 解析并激活 activeProfiles 中指定的 profile2. Profile 激活与合并(1) 根据 activeProfile 激活对应的 profile(2) 将激活的 profile 中的配置与全局配置合并(3) 获取 profile 中定义的 repository 和 pluginRepository 仓库列表3. 依赖解析阶段(1) 解析项目 pom.xml 中声明的依赖(2) 确定每个依赖所需的仓库位置4. 镜像匹配与重定向(1) 检查 mirrors 配置中的 mirrorOf 规则(2) 根据规则将原始仓库请求重定向到镜像地址例如:mirrorOf=central 会将中央仓库请求重定向到镜像5. 仓库认证匹配(1) 根据 repository.id 查找对应的 server 配置(2) 获取访问私有仓库所需的认证信息(用户名、密码)6. 依赖下载(1) 从重定向后的镜像仓库或原始仓库下载依赖(2) 如果是私有仓库,则使用对应的认证信息7. 编译与打包(1) 基于下载的依赖执行编译(2) 运行测试(如果包含 test 阶段)(3) 执行打包操作生成最终产物整个流程中,profile 提供了环境特定的配置,mirror 加速了依赖下载,server 提供了认证支持。
--><!-- 
Maven mirrorOf 规则详解1. 基本规则*: 匹配所有仓库external:*: 匹配所有外部仓库(除了本地仓库)central: 仅匹配中央仓库repo1: 匹配 Maven 1.x 的中央仓库2. 排除规则*,!repo1: 匹配所有仓库,但排除 repo1external:*,!central: 匹配所有外部仓库,但排除中央仓库3. 多仓库匹配central,public: 匹配 central 和 public 两个仓库repo1,repo2,repo3: 匹配多个指定仓库4. 特殊规则external:http:*: 匹配所有使用 HTTP 协议的外部仓库*>external:*: 复杂的排除和包含组合5. 工作原理Maven 根据 mirrorOf 的值来决定哪些仓库请求需要被重定向当多个 mirror 配置匹配同一个仓库时,按照配置顺序优先匹配第一个匹配成功后,原始仓库的 URL 会被替换为 mirror 的 url--><!-- 
Maven 依赖仓库定位机制:
(1) 依赖的 groupId、artifactId、version 定位例如:com.alibaba:fastjson:1.2.78 → /com/alibaba/fastjson/1.2.78/fastjson-1.2.78.jar
(2) 仓库搜索顺序本地仓库:首先检查 ~/.m2/repository/配置的远程仓库:按照 settings.xml 和 pom.xml 中定义的仓库顺序搜索
(3) 仓库继承机制项目 pom.xml 中定义的 repositories父 pom.xml 中定义的 repositoriessettings.xml 中 profile 定义的 repositories默认的中央仓库 central镜像重定向触发 : 当 Maven 确定要在某个仓库(如 central)下载依赖时,才会应用 mirrorOf 规则进行重定向。
-->

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年土陶泡菜坛直销厂家权威推荐榜单:陶瓷酒瓶/土陶酒坛/储酒坛源头厂家精选

在追求健康饮食与传承传统工艺的今天,土陶泡菜坛因其独特的微氧循环和透气不透水的特性,被誉为“会呼吸的陶”,能有效提升泡菜风味。数据显示,优质土陶泡菜坛能使泡菜品质提升30%以上。当前,中国泡菜坛行业市场规…

TOMCAT Docker 容器化部署指南

Apache Tomcat(简称Tomcat)是由Apache软件基金会开发的开源Web服务器和Servlet容器,实现了Java Servlet和JavaServer Pages(JSP)规范,为Java Web应用提供了"纯Java"的HTTP运行环境。Tomcat以其轻量、稳…

Excel - lookup(), vlookup(), xlookup()

Excel - lookup(), vlookup(), xlookup()Excel的lookup()函数和vlookup()函数有什么区别? ChatGPT said:在 Excel 中,LOOKUP() 和 VLOOKUP() 虽然名字相似,但它们的用法、限制和适用场景差别很大。下面给你一个清晰…

信创浪潮下,国产DevOps平台如何乘风破浪?

金融政务等领域受传统研发低效与信创适配难题困扰,本文对比主流DevOps产品。其中国产DevOps平台契合信创DevOps需求,安全合规,能提升研发效能,助力企业降低迁移成本与加速信创转型。从行业痛点来看,传统瀑布式研发…

接口参照

总览1.查询参数(Query Parameters) 1.1 前端请求(URL 拼接) GET /api/users?page=1&size=10&keyword=张三参数直接拼在 URL ? 后面 多个参数用 & 连接 适用于 GET 请求(也可用于 POST,但不推荐)1…

RustFS 重要变更,让容器化部署更安全

随着 RustFS 的持续走热,越来越多的用户开始关注并使用 RustFS,而且在整个过程中提出了很多关键问题。其中在 Start the container using a non-root user #804 中,whg517 用户提出,从安全最佳实践角度出发,RustF…

AI元人文:价值原语化的五维关系调和框架

AI元人文:价值原语化的五维关系调和框架 ——两间双果一资源 在价值冲突日益复杂的元时代,AI元人文的核心突破在于通过"价值原语化"将抽象价值降解为具体行为单元,并运用五个根本追问调和其相互关系:时序…

双赢思维

你提出的这个观点非常深刻,这是一种高水平的“双赢思维”,核心不是去强迫别人,而是设计一个机制,让对方的最佳选择恰好也是你希望看到的结果。这就像给系统装上一个“自动导航”,让它自然地驶向你想要的方向。 除…

Windows 11 系统对磁盘进行分区保姆级教程

具体步骤1. 右击桌面任务栏中的“开始”, 选择磁盘管理 2. 磁盘管理界面如下 3. 选中要压缩的卷,比如D盘,选中之后颜色稍有变化,右键, 点击“压缩卷” 4. 在弹出来的小窗口中,输入压缩空间量,这里选择300G,点击…

2025年口碑好的风冷一体化加热器厂家实力及用户口碑排行榜

2025年口碑好的风冷一体化加热器厂家实力及用户口碑排行榜行业背景与市场趋势随着工业4.0时代的深入发展,风冷一体化加热器作为工业加热领域的关键设备,市场需求持续增长。据《2024-2025中国工业加热设备市场研究报告…

2025年知名的节能加热圈厂家最新TOP排行榜

2025年知名的节能加热圈厂家最新TOP排行榜行业背景与市场趋势随着全球能源危机加剧和环保法规日益严格,节能加热设备行业迎来了前所未有的发展机遇。据《2024-2025全球工业加热设备市场报告》显示,节能加热圈市场规模…

vscode python2代码debug

一、背景 python2代码需要debug,vscode中安装python插件后debug闪屏后退出,无法debug。原因为 vscode在2022年停止对python插件python2的支持。如果需要使用,需要把python回退到v2021.12版本 二、安装旧版本 切换到…

2025年知名的远红外节能加热圈厂家推荐及采购指南

2025年知名的远红外节能加热圈厂家推荐及采购指南行业背景与市场趋势远红外节能加热技术作为工业加热领域的重要创新,近年来在全球范围内获得了快速发展。根据《2024-2029全球远红外加热技术市场报告》显示,2023年全…

2025年评价高的膜浓缩设备厂家选购指南与推荐

2025年评价高的膜浓缩设备厂家选购指南与推荐行业背景与市场趋势膜浓缩技术作为现代分离工艺的核心环节,在食品饮料、生物制药、化工环保等领域发挥着不可替代的作用。根据中国膜工业协会2024年度报告显示,全球膜浓缩…

2025年热门的废水处理液体分离设备TOP实力厂家推荐榜

2025年热门的废水处理液体分离设备TOP实力厂家推荐榜行业背景与市场趋势随着全球环保法规日益严格和工业废水排放标准不断提高,液体分离设备市场正迎来快速增长期。据MarketsandMarkets最新研究报告显示,2024年全球水…

【URP】Unity[后处理]晕影Vignette

晕影(Vignette)是Unity URP后处理中的一种视觉效果,主要用于模拟摄影中图像边缘变暗或去饱和的现象。它通过将观众注意力引导至画面中心来增强视觉焦点,常见于电影、游戏等场景中。 发展历史【从UnityURP开始探索游戏…

2025年知名的酶制剂浓缩设备最新TOP厂家排名

2025年知名的酶制剂浓缩设备最新TOP厂家排名 行业背景与市场趋势 酶制剂作为生物技术产业的核心产品之一,广泛应用于食品、医药、饲料、纺织、环保等多个领域。随着全球生物经济的快速发展,酶制剂市场需求持续增长…

2025年比较好的板材超声波探伤厂家最新推荐排行榜

2025年比较好的板材超声波探伤厂家最新推荐排行榜行业背景与市场趋势随着工业4.0时代的深入发展,超声波探伤技术作为无损检测的重要手段,在板材制造领域发挥着越来越关键的作用。根据《2024-2029年中国无损检测设备行…

cad批量转换pdf格式真的简单!这4个小技巧快收藏

几十个CAD图纸文件需要转成PDF格式,却只能一个个打开、一个个打印、一个个保存?不仅耗时耗力,还容易出错、漏转! 今天,我就来分享4个超实用的CAD批量转PDF方法,让你真正实现一键批量导出!赶紧接着往下看~ 01 Br…

2025年靠谱的螺旋风管厂家最新权威推荐排行榜

2025年靠谱的螺旋风管厂家最新权威推荐排行榜行业背景与市场趋势随着我国建筑行业的持续发展和环保要求的不断提高,螺旋风管作为通风系统的重要组成部分,市场需求呈现稳定增长态势。据中国通风设备行业协会最新统计数…