一、背景

最近在帮别的项目处理一些链路上的问题,结果用了客户的setting.xml文件之后,私服一直还是我司的;

idea中maven配置文件settings.xml没生效问题_intellij-idea

二、问题分析

这个问题给我的第一感觉就是maven的配置文件没生效,于是就去核查IDEA中关于maven的配置:

idea中maven配置文件settings.xml没生效问题_maven_02


一点毛病没有,于是猜测maven配置文件是不是存在优先级的问题。

怀着这个猜测,去看一下maven的官方文档(​​https://maven.apache.org/settings.html​​):

idea中maven配置文件settings.xml没生效问题_ide_03

红框中的内容翻译如下:

settings.xml存在于两个地方:

  1. Maven安装的地方:$M2_HOME/conf/settings.xml
  2. 用户的目录:${user.home}/.m2/settings.xml

前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。

所以可以看出用户的配置优先级高于IDEA中的Maven目录配置。

三、解决措施

将用户的配置删除:

cd /Users/saint/.m2
rm

注意:配置文件名一定要命名为settings.xml,其他的命名方式都不会生效。