• Maven中央仓库


    Maven仓库配置 pom中的repositories属性

    学习链接:maven 仓库配置 pom中repositories属性

    一、Maven中央仓库

    安装好Maven之后,我们可以建立一个简单的项目,配置一些简单的依赖,然后运行mvn clean install,项目就构建好了。我们没有手工的去下载任何jar文件,这一切都是因为Maven中央仓库的存在,当Maven在本地仓库找不到需要的jar文件时,它会查找远程仓库。而一个原始的Maven安装就自带了一个远程仓库——Maven中央仓库。

    这个Maven中央仓库是在哪里定义的呢?在我的机器上,我安装了maven-2.0.10,我可以找到这个文件:${M2_HOME}/lib/maven-2.0.10-uber.jar ,

    但是到了3.xxx版本之后在: maven安装目录下的:/lib/maven-model-builder-${version}.jar中

    打开该文件,能找到超级POM:orgapachemavenmodelpom-4.0.0.xml ,它是所有Maven POM的父POM,所有Maven项目继承该配置,你可以在这个POM中发现如下配置:

    
        
          central
          Central Repository
          https://repo.maven.apache.org/maven2
          default
          
            false
          
        
      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    关于远程仓库的配置,下面的我会详细解释,这里我们只要知道,中央仓库的id为central,远程url地址为http://repo.maven.apache.org/maven2,它关闭了snapshot版本构件下载的支持。

    二、在pom中配置远程仓库

    前面我们看到超级pom配置了ID为Central的远程仓库,我们可以在POM中配置其他的远程仓库。这样做的原因有很多,比如你有一个局域网的远程仓库,使用该仓库能大大提高下载速度,继而提高构建速度,也有可能你依赖的一个jar在central中找不到,它只存在于某个特定的公共仓库,这样你也不得不添加那个远程仓库的配置。
    这里我配置一个远程仓库指向中央仓库的中国镜像

    
    ...
      
        
          maven-net-cn
          Maven China Mirror
          http://maven.net.cn/content/groups/public/
          
            true
          
          
            false
          
        
      
      
        
          maven-net-cn
          Maven China Mirror
          http://maven.net.cn/content/groups/public/
          
            true
          
          
            false
              
        
      
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    我们先看一下的配置,你可以在它下面添加多个,每个都有它唯一的ID,一个描述性的name,以及最重要的,远程仓库的url。此外,true告诉Maven可以从这个仓库下载releases版本的构件,而false告诉Maven不要从这个仓库下载snapshot版本的构件。禁止从公共仓库下载snapshot构件是推荐的做法,因为这些构件不稳定,且不受你控制,你应该避免使用。当然,如果你想使用局域网内组织内部的仓库,你可以激活snapshot的支持。

    关于的更详细的配置及相关解释,请参考:http://www.sonatype.com/books/maven-book/reference_zh/apas02s08.html。
    至于,这是配置Maven从什么地方下载插件构件(Maven的所有实际行为都由其插件完成)。该元素的内部配置和完全一样,不再解释。

  • 相关阅读:
    Double 4 VR仿真情景实训教学系统在商务谈判课堂上的应用
    通过PLC网关如何实现三菱FX3U的远程上下载程序?
    【数据结构】数组和字符串(一):矩阵的数组表示
    Linus Torvalds接受来自微软的Linux Hyper-V升级
    多个PDF怎么一起打印?教你两种打印方法
    python--数据容器--str字符串
    VSCode 居然是个娱乐软件?让你 high 到爆的几款插件
    前端面试问题(jwt/布局/vue数组下标/扁平化/菜单树形/url api/新版本)
    ES6(ECMASript 相关介绍,ECMASript 6 新特性)
    【汇编中的寄存器分类与不同寄存器的用途】
  • 原文地址:https://blog.csdn.net/m0_67402026/article/details/126435228