> 文章列表 > Idea配置maven,指定settings.xml文件不生效

Idea配置maven,指定settings.xml文件不生效

Idea配置maven,指定settings.xml文件不生效

一.简介

最近单位要求把项目的仓库配置从阿里云改为nexus私服,配置了一个settings-nexus.xml的配置文件,idea的maven配置指定了该settings-nexus.xml文件,发现走的还是阿里云的,新的settings-nexus.xml竟然不生效,依赖无法上传到自己的nexus私服上。

二.排除

首先开下我们idea中maven的配置:
Idea配置maven,指定settings.xml文件不生效
看一下,user settings file 和local repository 没有错,这属实有点诡异了,一头雾水。

一开始以为是因为idea的缓存,导致新的配置文件没有生效,于是在idea上点了invaildate cache,重新启动idea后发现还是不生效。
Idea配置maven,指定settings.xml文件不生效

我得个乖乖,怀疑人生了,以为是setting-nexus.xml文件的内容写错,又去仔细看了下,确定也没错。

后面换成原本的名字为settings.xml的文件,发现又行了,那就有可能是加载的优先级的问题了,去官网看了下,还真有这个可能的问题。
截图如下:
Idea配置maven,指定settings.xml文件不生效
截图的大概意思是:

settings.xml可能存在两个文件夹:1、 Maven安装的地方:$M2_HOME/conf/settings.xml2、 用户的目录:${user.home}/.m2/settings.xml1是全局配置,2是用户配置。如果两者都存在,它们的内容将被合并,并且用户目录的settings.xml优先。

所以呢,加载的优先级如下:

①${user.home}/.m2 目录下读取 settings.xml
②${user.home}/.m2目录下不存在settings.xml时,从{M2_HOME}/conf 目录下读取
③idea界面里开发手动指定的settings.xml

三.解决方案:

按照从上一步中得到的结论,我试着优先从${user.home}/.m2 目录下读取 名字为settings.xml的文件,那我们就把原本那个settings-nexus.xml的文件名改为settings.xml,然后apply和ok。
截图如下:
Idea配置maven,指定settings.xml文件不生效
最后再重新 maven deploy,这样就成功把以来上传到自己的nexus私服上了。

《被嫌弃的松子的一生》

  1. 小时候,谁都觉得自己的未来闪闪发光,不是吗?但是一旦长大,没有一件事会遂自己心愿。

  2. 要么伤心地长吁短叹,要么沉醉于悲伤中,要么草草的了结了一生,要么笑着搪塞过去,将错就错。

  3. 人的心灵是脆弱的,难以做到为自己恨的人祈祷。原谅不可原谅的人,并为之祈祷,这就是上帝的爱。

  4. 想要在这个世界上留下自己活过的证据,因为好不容易生而为人。

《罗生门》

  1. 沾沾自喜者只管自喜就是,但就别人说三道四则属多管闲事。

  2. 较之希望得到什么,我们更多是同"能够"得到什么达成妥协。

  3. 撒谎是人之本性,在大多数时间里我们甚至都不能对自己诚实。那是因为人们太脆弱了所以才撒谎,甚至是对自己撒谎。

《这个杀手不太冷》

  1. 我所认为最深沉的爱,就是我把自己活成了你的样子。

  2. 事情总是这样的,只有当你真正感受到对死亡的恐惧,你才会学到要珍惜生命。

  3. 有些爱,也许从未说出口,才愈加显得珍贵。