关于maven读取settings.xml文件的优先级问题

今天在IDEA中配置maven的setting.xml文件路径指向的.m2路径下的setting_a.xml文件,同时,我的maven3.6.3也放在.m2中。

[1] .m2文件夹

[2] apache-maven-3.6.3文件夹

然后,在IDEA中打包发布时发现,无论如何都读取不到指定的setting_a.xml文件。这个IDEA内指向的settings_a.xml不生效,依赖无法上传到指定仓库中。

这个应该是maven加载setting.xml文件优先级的问题了,去maven官网看了下,有详细介绍。

[3] 官网关于读取setting.xml文件优先级

maven官网关于maven加载setting.xml文件优先级的介绍:

翻译:

快速概览

文件中的元素包含使用的元素 定义以各种方式配置 Maven 执行的值,例如 ,但不应捆绑到任何特定项目,或者 分发给观众。这些值包括 local 存储库位置、备用远程存储库服务器和 身份验证信息。settingssettings.xmlpom.xml

文件可能位于两个位置:settings.xml

  • Maven 安装:${maven.home}/conf/settings.xml

  • 用户的安装:${user.home}/.m2/settings.xml

前者也称为全局设置,后者称为用户设置。如果这两个文件都存在, 它们的内容被合并,用户特定的是 主导。settings.xmlsettings.xmlsettings.xml

提示:如果您需要从头开始创建特定于用户的设置,则 最简单的方法是将全局设置从 Maven 安装复制到目录。Maven 的默认值是 带有注释和示例的模板,以便您可以快速调整它以匹配 您的需求。${user.home}/.m2settings.xml

以下是以下主要元素的概述:settings

<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 https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
  <interactiveMode/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors/>
  <proxies/>
  <profiles/>
  <activeProfiles/>
</settings>

可以使用 以下表达式:settings.xml

  1. ${user.home}和所有其他系统属性(从 Maven 3.0 开始)

  2. ${env.HOME}等用于环境变量

请注意,在配置文件中定义的属性不能用于插值。settings.xml

它的大概意思是:

settings.xml可能存在两个文件夹:

  1.  Maven安装目录:${M2_HOME}/conf/settings.xml

  2.  用户的.m2目录:${user.home}/.m2/settings.xml

1是全局配置,2是用户配置。如果两者都存在,它们的内容将被合并,并且用户目录的settings.xml优先。

加载setting.xml的优先级如下:

  1. ${user.home}/.m2 目录下读取 settings.xml

  2. ${user.home}/.m2目录下不存在settings.xml时,从{M2_HOME}/conf 目录下读取

  3. idea界面里开发手动指定的settings.xml

[4] 解决读取指定setting.xml失败的解决方式

方式1:将.m2内的setting_a.xml文件名修改为settings.xml的文件,发布jar包成功(但是IDEA中继续使用.m2/setting_a.xml这个路径配置不生效的,文件找不到)。

方式2:将.m2内的setting_a.xml文件名不动,直接去删掉maven3.6.3的conf目录内的setting.xml文件,发布成功。

方式3:删除.m2内的setting_a.xml文件,将该文件修改为settings.xml放入maven3.6.3的conf目录内,虽然也能发布jar成功,但是IDEA中配置的.m2/setting_a.xml这个路径配置不生效的,使用的是系统变量内的setting.xml文件。

所以,暴力点,直接删除.m2内的setting文件,环境和IDEA工具均统一去使用maven3.6.3的conf目录下setting配置。

Done

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

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

相关文章

Docker(1)

为什么用docker 更高效的利用系统资源 更快速的启动时间 一致的运行环境 持续交付和部署 更轻松的迁移 更轻松的维护和扩展 对比传统虚拟机总结 镜像 docker镜像相当于一个root文件系统&#xff0c;提供运行时程序&#xff0c;库&#xff0c;资源&#xff0c;配置&#xff…

【LeetCode刷题笔记】二叉树(二)

257. 二叉树的所有路径 解题思路: 1. DFS 前序遍历 ,每次递归将 当前节点的拼接结果 传递到 下一层 中,如果当前节点是 叶子节点 ,就将 当前拼接结果 收集答案并返回。 注意:路径path结果可以使用 String 来拼接,这样可以避免回溯处理。

编辑器vim和编译器gcc/g++

目录 一、编辑器vim 1、概念 2、基本操作 1、进入vim 2、模式切换 3、命令行模式 4、插入模式 5、底行模式 6、vim 的配置 二、编译器gcc/g 1、概念 2、背景知识 3、gcc/g中的编译链接 1、预处理 2、编译 3、汇编 4、链接 4、函数库 1、静态库 2、动态库 一…

重复性工作自动化解决方案——影刀

以前&#xff0c;影刀是一个邂逅的初见小工具&#xff0c;新奇在里头&#xff0c;踌躇在外头&#xff1b; 现在&#xff0c;影刀是一个稳定的职场贾维斯&#xff0c;高效在里头&#xff0c;悠闲在外头&#xff1b; 以后&#xff0c;影刀是一个潜力的知己老司机&#xff0c;有序…

2023-11-15 LeetCode每日一题(K 个元素的最大和)

2023-11-15每日一题 一、题目编号 2656. K 个元素的最大和二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次&#xff0c;最大化你的得分&#xff1a; 从 nums 中选择一个元素 m 。将选中…

高效免费办公神器——ONLYOFFICE入手指南

前言&#xff1a; 作为开发者&#xff0c;有时候经常为寻找适合的开发工具而苦恼&#xff1b;或者因为高昂的费用而犹豫不决&#xff1b;亦或喜欢的办公产品只能在单一的平台上使用&#xff0c;与其把时间花在复杂的工具使用上&#xff0c;不如节省出时间投入思考和技术的提升。…

【Python】基础练习题_ 函数和代码复用

&#xff08;1&#xff09;编写一个函数&#xff0c;输入n为偶数时&#xff0c;调用函数求1/21/4…1/n,当输入n为奇数时&#xff0c;调用函数1/11/3…1/n。 def calculate_sum(n):total_sum 0if n % 2 0: # n为偶数for i in range(2, n1, 2):total_sum 1 / ielse: # n为奇…

vscode远程连接服务器报错

报错&#xff1a; Bad owner or permissions on C:\\Users\\Alice/.ssh/config> 过程试图写入的管道不存在。 1.ping一下config里面ip 2.ping的通&#xff0c;不是网络问题 3.扩展 -> remote-ssh -> 设置 -> 扩展设置&#xff08;红框&#xff09; 4.输入config绝…

Python 如何实现组合(Composite)设计模式?什么是组合设计模式?

什么是组合&#xff08;Composite&#xff09;设计模式&#xff1f; 组合&#xff08;Composite&#xff09;设计模式是一种结构型设计模式&#xff0c;它允许客户端使用单一对象和组合对象&#xff08;对象的组合形成树形结构&#xff09;同样的方式处理。这样&#xff0c;客…

一文入门Springboot+actuator+Prometheus+Grafana

环境介绍 技术栈 springbootmybatis-plusmysqloracleactuatorPrometheusGrafana 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis-plus 3.5.3.2 本地主机应用 192.168.1.9:8007 PrometheusGrafana安装在同一台主机 http://…

振南技术干货集:深入浅出的Bootloader(1)

注解目录 1、烧录方式的更新迭代 1.1 古老的烧录方式 (怀旧一下&#xff0c;单片机高压烧录器。) 1.2 ISP 与ICP 烧录方式 (还记得当年我们玩过的 AT89S51?) 1.3 更方便的 ISP 烧录方式 1.3.1串口 ISP &#xff08;是 STC 单片机成就了我们&#xff0c;还是我们成就了…

[当人工智能遇上安全] 10.威胁情报实体识别 (1)基于BiLSTM-CRF的实体识别万字详解

您或许知道&#xff0c;作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用&#xff0c;您就有福利了&#xff0c;作者将重新打造一个《当人工智能遇上安全》系列博客&#xff0c;详细介绍人工智能与安全相关的论文、实践&#xff0c;并分享各种案…