idea+maven配置不同远程仓库,下载时依次搜索,idea maven profile 灰色、蓝色含义

1 成品

默认搜阿里云,有需要其他仓库(私服、spring-aot)的时候idea右边勾上对应的profile,再执行mvn clean -U idea:idea命令下载依赖
如果idea可以启动但有红线,可以把所有pom里依赖都删掉reload一下,然后再加回来再reload来刷新
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
  <localRepository>E:\repository</localRepository>

  <mirrors>
    <mirror>
      <id>aliyunmaven</id>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>pentaho</id>
      <repositories>
        <repository>
          <id>PentahoOmni</id>
          <name>PentahoOmni Repository</name>
          <url>https://public.nexus.pentaho.org/content/groups/omni/</url>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>spring-aot</id>
      <repositories>
        <repository>
          <id>spring-release</id>
          <name>Spring release</name>
          <url>https://repo.spring.io/release</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>spring-release</id>
          <name>Spring release</name>
          <url>https://repo.spring.io/release</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <id>aliyun</id>
      <repositories>
        <repository>
          <id>aliyun maven</id>
          <url>https://maven.aliyun.com/repository/public</url>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>wellcloud</id>
      <repositories>
        <repository>
          <id>snapshots</id>
          <name>Snapshots</name>
          <url>http://xxxx:8081/nexus/content/repositories/snapshots</url>
        </repository>
        <repository>
          <id>releases</id>
          <name>Releases</name>
          <url>http://xxxx:8081/nexus/content/repositories/releases</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>aliyun</activeProfile>
  </activeProfiles>

</settings>

这个问题搜了好几次了总感觉搜到的回答都差点什么,每次迷迷糊糊将就着用,结果有的时候能下载,有的时候又找不到依赖。今天总算搞明白怎么玩这东西了。

2 相关知识

2.1 maven配置读取顺序

mvn会先读取用户级settings.xml文件(user/.m2下),然后读取全局settings.xml文件(maven所在目录conf文件夹中),一般全局里配置里建议啥也不写

用户级和全局配置内容会合并,有冲突的话会选择用户settings.xml中的内容

#查看运行时读取的settings
mvn -X
#查看运行时使用的profile
mvn help:active-profiles

2.2 依赖搜索顺序

先搜索本地仓库,再搜索配置的远程仓库,远程仓库都找不到的话会再去搜索中央仓库(中央仓库一般又会配置阿里云镜像代理)

2.3 远程仓库搜索顺序

同一个profile先定义的仓库先读,多个profile后配置的profile先搜索,与activeProfiles中激活的顺序无关

3 在idea中使用不同的远程仓库

灰色勾代表settings.xml中默认已经启用的profile,蓝色勾代表手动启用profile,不选择代表禁用profile
idea实际执行mvn时会根据settings.xml中已激活的profile,添加上不同的命令

举例如下:
执行mvn命令时idea会加上 -P pentaho
在这里插入图片描述
执行mvn命令时idea会加上 -P pentaho,aliyun

在这里插入图片描述
执行mvn命令时idea会加上 -P pentaho,!aliyun (感叹号"!“或者横杠”-"代表禁用profile)
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值