Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载

摘要:
在构建Maven项目时,首先检查pom。xml文件用于确定依赖包的下载位置。执行顺序如下:1.从本地资源库中查找并获取依赖包。如果没有,请转到步骤2.2。从Maven的默认中央仓库(http://repo1.maven.org/maven2/),如果没有,请转到步骤3.3。如果在pom中,如果在xml中定义了自定义远程仓库,那么也可以在仓库中找到它,并获取依赖包。如果未找到,则M

当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下:

1、从本地资源库中查找并获得依赖包,如果没有,执行第2步。

2、从Maven默认中央仓库中查找并获得依赖包(http://repo1.maven.org/maven2/),如果没有,执行第3步。

3、如果在pom.xml中定义了自定义的远程仓库,那么也会在这里的仓库中进行查找并获得依赖包,如果都没有找到,那么Maven就会抛出异常。

默认中央仓库的地址:

1、http://repo1.maven.org/maven2/

2、以上地址还配有搜索页面:http://search.maven.org/

3、如果想要向中央仓库提交自己的依赖包,可以很肯定的告诉你,此功能可以实现;参考:http://www.cnblogs.com/EasonJim/p/6671419.html

maven替换中央仓库- 阿里云

在国内访问Maven仓库,连接速度太慢。下面是将中央仓库替换成阿里云的中央仓库的方法。

第一种,统一修改仓库地址

可以直接修改Mavenconf文件夹中的setting.xml文件,或者在.m2文件夹下建立一个setting·xml文件。

setting.xml里面有个mirrors节点,用来配置镜像URL。mirrors可以配置多个mirror,每个mirror有id,name,url,mirrorOf属性。

  • id是唯一标识一个mirror
  • name貌似没多大用,相当于描述
  • url是官方的库地址
  • mirrorOf代表了一个镜像的替代位置,例如central就表示代替官方的中央库。

mirror也不是按settings.xml中写的那样的顺序来查询的。所谓的第一个并不一定是最上面的那个。

当有id为B,A,C的顺序的mirror在mirrors节点中,maven会根据字母排序来指定第一个,所以不管怎么排列,一定会找到A这个mirror来进行查找,当A无法连接,出现意外的情况下,才会去B查询。

在setting·xml中添加如下代码:

...
<mirrors>  
    ...   
    <mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
    </mirror>
</mirrors>

image

第二种,分别给每个项目配置不同的中央库

直接在项目的pom.xml中修改中央库的地址。如下:

<repositories>
    <repository>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </repository>
</repositories>

完整的pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xiaolyuh</groupId>
    <artifactId>spring-boot-student</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>spring-boot-student</name>

    <!-- 添加Spring Boot的父类依赖,这样当前项目就是Spring Boot项目了。 spring-boot-starter-parent是一个特殊的starter,他用来 
        提供相关的maven默认依赖, 使用它之后,常用的依赖可以省去version标签 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <repositories>
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <!-- 或者在maven的setting文件中加入 -->
    <!--<mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>-->

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <modules>
        <module>spring-boot-student-banner</module>
    </modules>

</project>

补充:设置我们第三方jar包的下载地址为私服地址的方法(如果私服仓库不存在jar包就会从私服的代理镜像下载地址并保存到私服仓库)

  如果你想讲jar包下载改为从私服下载也是修改这里,前提是先搭建好私服,然后从后台设置私服仓库的远程地址为阿里云的镜像地址即可:

(1)在私服的后台设置仓库的镜像地址(用于私服不存在时候从该地址下载)

Maven的默认中央仓库以及修改默认仓库&amp;配置第三方jar包从私服下载第2张

(2)修改maven的settings.xml的配置文件:配置下载地址

  <mirrors>
    <mirror>
      <id>nexus</id>
      <name>internal nexus repository</name>
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8081/nexus/content/repositories/central/</url>
    </mirror>
  </mirrors>

(3)我们在eclipse也可以查看默认使用的下载地址:

Maven的默认中央仓库以及修改默认仓库&amp;配置第三方jar包从私服下载第3张

(4)当我们引入一个不存在的jar包的时候会先下载到私服的仓库地址,然后下载到本地的仓库地址,如下:

Maven的默认中央仓库以及修改默认仓库&amp;配置第三方jar包从私服下载第4张

  如果maven项目下载不下来jar包先检查一下下载地址,eclipse中很好检查,用上面(3)就可以检查地址,如果实在不行,将私服地址注掉即可,就留下一个阿里云的中央仓库地址。

免责声明:文章转载自《Maven的默认中央仓库以及修改默认仓库&amp;amp;配置第三方jar包从私服下载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Delphi7 客户端调用WebService(天气预报)windbg源码驱动调试 + 无源码驱动调试下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Git连接GitHub仓库详解

创建SSH Key 1.注册GitHub账号。 2.创建SSH Key。windows + R键同时按,打开运行命令窗口,输入.进入家目录。 看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有(那就奇了怪了!),一般第一次使用是没有的,真有的话可以直接跳过下面的命令。 打开命令行,执行命令:ssh-keygen -t rsa -C...

Maven私服搭建及使用-Windows版

了解有限,目前只针对基础功能介绍,持续更新 一、下载对应的版本(本例版本:nexus-3.7.1-02)   https://www.sonatype.com/download-oss-sonatype 二、启动服务,进入对应安装目录,按住shift右键,打开cmd命令行,执行nexus.exe /run   我的Nexus目录:NEXUS_HOME ex...

CentOS7下使用YUM安装mariadb10

1:由于centos7 默认使用yum安装MySQL的话就会安装mariadb,只是安装的版本停留在mariadb5.x,版本比较低。如果我们需要安装mariadb10这里就需要删除mariadb-libs-5.5.52-1.el7.x86_64,这是系统默认安装的。 rpm -qa mariadb-libs yum remove mariadb-libs...

Spring Boot 多模块与 Maven 私有仓库

前言 系统复杂了,抽离单一职责的模块几乎是必须的;若需维护多个项目,抽离公用包上传私有仓库管理也几乎是必须的。其优点无需赘述,以下将记录操作过程。 1. 多模块拆分 在.NET 中由于其统一性,实现上更自然一点。Spring Boot 通过 Maven 构建多模块工程也不麻烦,假如我的项目中包含以下几个包: 我需要将他们分别拆分成独立模块,首先要修改的是根...

GitHub怎样fork别人的代码到自己仓库并进行贡献

场景 比如说现在有一个很牛逼的项目,我们进入项目地址, 想将这个项目复制到自己的github仓库,然后你还想将 仓库中的代码拉取到本地进行修改,修改完你还要将本地的 修改后的代码推送到自己的github仓库,更甚至你还想将自己 复制过来并修改后的代码再还给原作者,请求人家让你合并。 实现 进入厉害的项目的地址,即他人的仓库中的项目,然后右边有个fork...

第六篇 kubernetes helm部署harbor镜像仓库

1.harbor镜像仓库简介 Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、 镜像验真、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。 2.harbor 组件简介 从安装组件我们可以看出harbor主要依靠以下几个组件: Nginx...