项目场景:
因为公司项目比较多,多个项目共用一个Maven。没有使用默认的settings.xml文件。而是新增了一个settings-JinZhouShiJi.xml文件。

问题描述
公司项目有用自己的`私服,Maven正常去私服下载jar包是没问题的。但是一直是去找的阿里云镜像,到导致阿里云镜像找不到相关的jar包报错!!!
原因分析:
第一感觉是Maven配置文件
没有生效,但是去查看了配置没问题。是猜测maven配置文件是不是存在优先级的问题。没有去找IDEA配置好的settings-JinZhouShiJi.xml文件,而是去找默认的settings.xml因为默认的是配置的阿里云镜像!!!
怀着这个猜测,去看一下maven的官方文档(https://maven.apache.org/settings.html):
红框中的内容翻译如下:
settings.xml存在于两个地方:
Maven安装的地方:
$M2_HOME/conf/settings.xml
用户的目录:
${user.home}/.m2/settings.xml
前者又被叫做
全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
所以可以看出用户的配置优先级高于IDEA中的Maven目录配置。
解决方案:
把原先的 settings.xml 文件改名为 :
settings-back.xml。然后就去找配置文件里的settings-JinZhouShiJi.xml文件了。

Maven配置问题与解决:IDEA中用户设置优先级高于全局
本文介绍了在公司项目中遇到的Maven配置问题,由于多个项目共用一个Maven,导致Maven在寻找jar包时错误地使用了阿里云镜像而不是公司的私服。通过分析发现,IDEA中指定的settings-JinZhouShiJi.xml文件未被优先使用。根据Maven官方文档,用户的settings.xml配置优先级高于全局的settings.xml。解决方案是将默认的settings.xml重命名为settings-back.xml,使得Maven读取到正确的配置文件。


1424

被折叠的 条评论
为什么被折叠?



