Maven的默認中央倉庫以及修改默認倉庫&配置第三方jar包從私服下載


當構建一個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)在私服的后台設置倉庫的鏡像地址(用於私服不存在時候從該地址下載)

 

(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也可以查看默認使用的下載地址:

 

(4)當我們引入一個不存在的jar包的時候會先下載到私服的倉庫地址,然后下載到本地的倉庫地址,如下:

 

  如果maven項目下載不下來jar包先檢查一下下載地址,eclipse中很好檢查,用上面(3)就可以檢查地址,如果實在不行,將私服地址注掉即可,就留下一個阿里雲的中央倉庫地址。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM