精华内容
下载资源
问答
  • 但是有的网上下载的项目需要从多个仓库查找对应的包,从网上找了很多帖子,配置Maven的settings.xml文件中的多个仓库,都是从一个地方复制粘贴的,方法说的都不对。今天自己研究了一下,分享给大家。 最终的...

    Maven是Java的项目配置管理工具,用来管理依赖,具体的用途就不展开说了。大部分项目,配置一个镜像仓库地址就可以了(单个mirror)。但是有的网上下载的项目需要从多个仓库查找对应的包,从网上找了很多帖子,配置Maven的settings.xml文件中的多个仓库,都是从一个地方复制粘贴的,方法说的都不对。今天自己研究了一下,分享给大家。

    最终的settings.xml文件配置

    如果你不想看具体的配置,可以直接把我下面这个配置拿走,修改一下localRepository部分对应自己的本地repo(通常为~/.m2/repository),然后将settings.xml替换${MAVEN_HOME}/conf/settings.xml即可。

    <?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 http://maven.apache.org/xsd/settings-1.2.0.xsd">
      <localRepository>/Users/chris/.m2/repository</localRepository>
      <pluginGroups></pluginGroups>
      <proxies></proxies>
      <servers></servers>
      <mirrors></mirrors>
    
      <profiles>
        <profile>
          <id>aliyun</id> 
          <repositories>
            <repository>
              <id>aliyun</id> 
              <url>https://maven.aliyun.com/repository/public</url> 
              <releases>
                <enabled>true</enabled>
              </releases> 
              <snapshots>
                <enabled>true</enabled> 
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </repository>
          </repositories>
        </profile>
        <profile>
          <id>pentaho</id>
          <repositories>
            <repository>
              <id>pentaho</id>
              <url>https://nexus.pentaho.org/content/repositories/omni/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </repository>
          </repositories>
        </profile>
        <profile>
          <id>repo1</id>
          <repositories>
            <repository>
              <id>repo1</id>
              <url>https://repo1.maven.org/maven2</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </repository>
          </repositories>
        </profile>
        <profile>
          <id>repo2</id>
          <repositories>
            <repository>
              <id>repo2</id>
              <url>https://repo2.maven.org/maven2</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </repository>
          </repositories>
        </profile>
      </profiles>
    
      <activeProfiles>
      <activeProfile>aliyun</activeProfile>
      <activeProfile>pentaho</activeProfile>
      <activeProfile>repo1</activeProfile>
      <activeProfile>repo2</activeProfile>
    
    </activeProfiles>
    </settings>
    

    settings.xml相关具体配置介绍

    Mirrors标签部分

    通常用来定义镜像仓库(repository),指定用来下载对应依赖和插件的仓库地址。使用Mirrors的理由如下:

    • 配置一个就近加速的网络仓库;
    • 配置一个你本地创建的镜像仓库;

    来自Maven官方的Mirrors配置示例如下:

    <settings>
      ...
      <mirrors>
        <mirror>
          <id>other-mirror</id>
          <name>Other Mirror Repository</name>
          <url>https://other-mirror.repo.other-company.com/maven2</url>
          <mirrorOf>central</mirrorOf>
        </mirror>
      </mirrors>
      ...
    </settings>
    

    在Mirrors部分可以配置多个镜像仓库,但是在该部分配置多个仓库,并不能提供自动查询多个仓库的功能,默认还是取第一个仓库进行查询。

    Profiles标签部分

    settings.xml中的profile部分,包括4个二级子标签:activationrepositoriespluginRepositories and properties。profile部分的内容需要在下面进行激活。这里介绍多个镜像共同使用仅介绍Repositories部分。

    Repositories

    配置方式如下,指定repo地址、id:

      <profiles>
        <profile>
          <id>repo2</id>
          <repositories>
            <repository>
              <id>repo2</id>
              <url>https://repo2.maven.org/maven2</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </repository>
          </repositories>
        </profile>
      </profiles>
    

    Active Profiles标签部分

    settings.xml配置文件最后的一部分就是激活公用多个仓库的重点activeProfiles。包含多个activeProfile元素,每一个activeProfile元素都用来指定一个上部分profile的id,也就是说,每指定一个activeProfile映射,就激活一个profile,将会覆盖其他任何环境配置。

    大家从如下例子里,可以看到我配置了aliyun、pentaho、repo1和repo2四个仓库,这样再执行mvn命令,他就会从这四个仓库循环去查找包,第一个找不到就去第二个找。。。

    <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">
      ...
    <activeProfiles>
      <activeProfile>aliyun</activeProfile>
      <activeProfile>pentaho</activeProfile>
      <activeProfile>repo1</activeProfile>
      <activeProfile>repo2</activeProfile>
    </activeProfiles>
    </settings>
    
    展开全文
  • 【方式一】:全局多仓库设置 配置maven的settings.xml文件 去掉原来的仓库<mirror><mirror/> 改用<profiles><profiles/> <profiles> <profile> <!-- id必须唯一 --> &...

    【方式一】:全局多仓库设置
    配置maven的settings.xml文件
    去掉原来的仓库<mirror><mirror/>
    改用<profiles><profiles/>

    <profiles>
        <profile>
            <!-- id必须唯一 -->
            <id>myRepository1</id>
            <repositories>
                <repository>
                    <!-- id必须唯一 -->
                    <id>myRepository1_1</id>
                    <!-- 仓库的url地址 -->
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
        <profile>
            <!-- id必须唯一 -->
            <id>myRepository2</id>
            <repositories>
                <repository>
                    <!-- id必须唯一 -->
                    <id>myRepository2_1</id>
                    <!-- 仓库的url地址 -->
                    <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
    

    配置好上面的后,再将以下填入配置,启动多仓库:

    <activeProfiles>
      <!-- 激活myRepository1 -->
      <activeProfile>myRepository1</activeProfile>
      <!-- 激活myRepository2 -->
      <activeProfile>myRepository2</activeProfile>
    </activeProfiles>
    

    【方式二】:在项目中添加多个仓库
    修改项目pom文件
    在项目中pom文件的repositories节点(如果没有手动添加)下添加多个repository节点,每个repository节点是一个仓库。

    <repositories>
        <repository>
            <!-- id必须唯一 -->
            <id>jboss-repository</id>
            <!-- 见名知意即可 -->
            <name>jboss repository</name>
            <!-- 仓库的url地址 -->
            <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
        </repository>
        <repository>
            <!-- id必须唯一 -->
            <id>aliyun-repository</id>
            <!-- 见名知意即可 -->
            <name>aliyun repository</name>
            <!-- 仓库的url地址 -->
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    
    展开全文
  • maven三类仓库 本地(local) 中央(central) 远程(remote) 2.依赖查找顺序大致如下: (1),在本地仓库中寻找 (2),在全局配置的远程仓库(settings.xml中配置的并有激活)中寻找(如果被mirror拦截,...

    目录

    1. 预备知识

    1.1 仓库分类

    1.2 配置文件类型

    2. 依赖查找顺序大致如下:

    3. 思考:为什么顺序这样设置


    1. 预备知识

    1.1 仓库分类

    maven三类仓库

    本地(local)

    中央(central)

    远程(remote)

    1.2 配置文件类型

    重复的配置,会覆盖。user覆盖global,project覆盖user。

    2. 依赖查找顺序大致如下:

     (1),在本地仓库中寻找

     (2),在全局配置的远程仓库(settings.xml中配置的并有激活)中寻找(如果被mirror拦截,则从mirror查询)

     (3),在项目自身配置的远程仓库(pom.xml)中寻找(如果被mirror拦截,则从mirror查询)

     (4),在中央仓库中寻找(如果被mirror拦截,则从mirror查询)

    注:

    1、如果在找寻的过程中,如果发现该仓库有镜像设置,则用镜像的地址代替。例如现在进行到要在respository A仓库中查找某个依赖,但A仓库配置了mirror,则会转到从A的mirror中查找该依赖,不会再从A中查找。

    2、settings.xml中配置的profile(激活的)下的respository优先级高于项目中pom文件配置的respository。

    3、如果仓库的id设置成“central”,则该仓库会覆盖maven默认的中央仓库配置。

    3. 思考:为什么顺序这样设置

    1. 减少中央库的服务器的压力。现在本地仓库找,就不用联网。本地库没有则在远程库找,也不用去中央库查找。
    2. 提高响应下载速度
    展开全文
  • 常用配置:我们常用的配置是在maven的配置文件的 mirrors 标签中去配置远程仓库,但是 mirrors 标签中配置多个远程仓库的时候,只有第一个会生效,只有第一个仓库无法访问的时候才会使用第二个仓库,如果第一个仓库...

    前言:在某些情况下,我们在开发java代码的时候会用到多个远程仓库,有时候是不同的项目用的是不同的远程仓库,所以运维的时候经常需要切换远程仓库。这个时候我们就想能不能配置多个远程仓库,当一个远程仓库没有我们需要依赖的jar包的时候就去另外一个远程仓库下载,不需要我手动切换远程仓库。
    常用配置:我们常用的配置是在maven的配置文件的 mirrors 标签中去配置远程仓库,但是 mirrors 标签中配置多个远程仓库的时候,只有第一个会生效,只有第一个仓库无法访问的时候才会使用第二个仓库,如果第一个仓库能访问,但是没有你所需要的依赖,那它是不会去第二个仓库中下载依赖的。所以如果在这里配置远程仓库的话,因为不同项目用到的依赖不一样,不是每个仓库中都有,这时候就需要你手动切换远程仓库。
    在这里插入图片描述
    多个远程仓库配置:在Maven的配置文件中的 profiles 标签下面配置多个远程仓库,具体配置如下图,这样配置之后,如果第一个仓库中如果没有你需要的依赖,或者第一个仓库无法访问,那么会自动的去第二个仓库中下载你需要的依赖,就不需要手动切换远程仓库了。
    在这里插入图片描述
    注意:

    1. 在 profiles 标签中配置过远程仓库之后,mirrors 标签中就不需要再配置了,原先配置过也可以删掉或者注释掉。
    2. settings.xml配置文件中最好不要写中文注释,一定要记得将中文注释删掉。
    3. 配置文件
      百度网盘地址:https://pan.baidu.com/s/1kaw3uMVBKAVbkLGGcscUvQ
      提取码:spad
    展开全文
  • <repositories> <repository> <id>datanucleus<...http://www.datanucleus.org/downloads/maven2/</url> </repository> <repository> <id>ib...
  • repositories指定jar包下载的地点,可以是多个。 repositories可以通过setting.xml方式配置,会对所有maven项目生效,也可只在本项目pom.xml中配置一个maven仓库标签来实现。 当在自己的maven项目的pom.xml中添加...
  • 直接上命令: mvn install:install-file -Dmaven.repo.local=F:\Maven_repository -DgroupId=...
  • maven配置远程仓库和镜像

    千次阅读 2021-01-28 14:19:35
    配置远程仓库的几种方法:1 在pom.xml里配置多个远程仓库:nexusnexus私服URLhttp://127.0.0.1:8081/repository/maven-public/aliyun阿里云http://maven.aliyun.com/nexus/content/groups/public/缺点:每个项目都...
  • Maven远程仓库的各种配置

    千次阅读 2020-12-24 12:37:36
    我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他远程仓库中有,如JBoss Maven仓库。...
  • 这下闲下来从 GitHub 上拉了一项目来,发现使用单一的 mirror 仓库无法找到一些 jboss 的依赖,所以想起来研究一下 Maven 多仓库和镜像相关的配置。都知道在 $HOME/.m2/settings.xml 中配置了 Maven 在本地的全局...
  • maven仓库设置

    2021-11-21 18:29:21
    pom.xml文件设置仓库 <repository> <id>nexus-aliyun</id> <name>nexus-aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> ...
  • Maven 仓库

    2021-11-18 17:34:46
    Maven 仓库 何为Maven仓库Maven世界中,任何一依赖、...在一台工作台上,可能会有几十个Maven项目,所有项目都使用maven-compiler-plugin,这些项目中的大部分都用到了log4j,有一小部分用到了Spring Framework,
  • 零、前言一、Maven设置远程仓库二、测试使用到的settings.xml和pom.xml1. settings.xml2. pom.xml三、测试测试一:测试二:测试三:测试四:四、总结:1. maven设置远程仓库的优先级如下:2. 设置远程仓库的两种配置...
  • idea默认在新建项目和clone项目的时候,使用的都是内置的maven,每次需要自己去设置使用自己安装的maven,有时候还会忘记,就很烦。所以改一改配置文件,让两个maven统一起来。 2maven基本配置文件 #### 2.1文件在$...
  • maven多仓库

    2021-06-24 11:13:23
    <profiles> <profile> <id>aliyun</id> <repositories> <repository> <id>aliyun</id> <url>http://maven.a...
  • maven默认本地仓库

    千次阅读 2020-12-21 00:33:21
    本地仓库是远程仓库的一缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包...
  • maven配置多个镜像如何实现?本篇文章小编给大家分享一下maven配置多个镜像实现方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。问题场景1、国内访问maven默认远程中央镜像特别慢2...
  • Maven 仓库优先级

    2021-09-25 19:17:30
    maven仓库优先级:本地仓库(localRepositories) > pom.xml文件中的repositories仓库 > setting.xml配置文件中mirrors全局镜像
  • 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/SETTI
  • 这阵子碰了一个Maven的坑 无法下载pom中的插件 项目报错: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact ...
  • 私有maven仓库的搭建搭建环境为阿里云ESC服务器,CentOS.确保服务器已经安装Jdk。然后我要手把手教你安装和启动nexus。Step1:新建一目录使用命令:mkdir /usr/softwareStep2: 进入新建的目录:cd /usr/...
  • 配置maven内网仓库

    2021-01-13 11:55:21
    前一篇讲博客:CentOS 下...在浏览器地址栏里输入http://host_address:8081/nexus就来到了这样一个仓库管理页面,应该是ExtJs做了,界面很漂亮! 下面开始配置。1:登录。默认的管理员用户和密码:admin/admin123...
  • Maven配置阿里云镜像仓库 1、设置本地仓库路径 在settings.xml文件中添加localRepository标签 <localRepository>D:\repository</localRepository> 2、在settings.xml文件中的mirrors下添加mirror标签 ...
  • maven配置多个镜像

    2021-01-02 21:48:45
    maven配置多个镜像 问题场景 1、国内访问maven默认远程中央镜像特别慢 2、用阿里的镜像替代远程中央镜像 3、大部分jar包都可以在阿里镜像中找到,部分jar包在阿里镜像中没有,需要单独配置镜像 解决方案 settings....
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一适合你的列表创建一表格设定内容居中、居左、...
  • maven仓库配置

    2021-03-20 13:20:47
    这里就关于maven常用的相关知识进行一总结,方便日后使用~~ 三、maven环境搭建 1、jdk环境 Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上 2、mave
  • 当我们创建一module ...1)我们有项目 twomodule插件工程:2)我们需要将该插件上传到本地maven仓库中,首先,我们需要在该插件的.gradle文件中,使用gradle提供的上传工具apply plugin: 'maven' //在module的grad...
  • maven 本地仓库的配置

    2021-12-03 20:33:55
    下载安装MAVEN,并配置本地仓库,修改远程仓库为阿里的
  • Maven仓库切换

    2021-08-26 11:48:05
    由于建立一个私有仓库不是难事,所以一旦出现多个仓库需要切换,就非常麻烦,因此有一个便捷的切换方式会好很多。        我们的仓库配置一般都在~/.m2/settings.xml,默认的...
  • 常用repo列表 首先介绍一搜索jar包的常用网址:...截止2021年9月,最流行的仍然是central这库。 center repo配置: <repository> <id>central</id> <!-- This shoul

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,275
精华内容 30,110
关键字:

maven使用多个仓库