maven快速入門第十七講——從私服下載jar包到本地倉庫

沒有配置nexus之前,如果本地倉庫沒有,那麼會去中央倉庫下載,通常在企業中會在局域網內部署一臺私服服務器,有了私服之後,本地項目會首先去本地倉庫找jar包,如果沒有找到則連接私服從私服下載jar包,如果私服沒有jar包私服同時作爲代理服務器從中央倉庫下載jar包,這樣做的好處是一方面由私服對公司項目的依賴jar包統一管理,一方面提高下載速度,項目連接私服下載jar包的速度要比項目連接中央倉庫下載jar包的速度快得多。

在本講中,我將會演示如何從私服上下載jar包(是將crm-dao項目打包成的jar包),並進行測試。

管理倉庫組

nexus中包括很多倉庫,hosted中存放的是企業自己發佈的jar包及第三方公司的jar包,proxy中存放的是中央倉庫的jar包。爲了方便從私服下載jar包,可以將多個倉庫組成一個倉庫組,每個工程需要連接私服的倉庫組下載jar包。

你有沒有想過如何來配置倉庫組啊?首先啓動nexus服務,然後在瀏覽器地址欄中輸入http://localhost:8081/nexus/這樣的url地址進行訪問,接着你會看到在右上角有個Log In的超鏈接,點擊它並使用nexus內置賬戶(用戶名是admin,密碼是admin123)進行登錄,登錄成功之後,你便會看到如下圖所示的效果。
在這裏插入圖片描述
點擊頁面左側的Repositories超鏈接就能看到倉庫組了,接着你就可以配置倉庫組了。
在這裏插入圖片描述
上圖中倉庫組包括了本地倉庫、代理倉庫等。

在settings.xml文件中配置倉庫

在客戶端的settings.xml文件中配置私服的倉庫,也稱之爲配置模板。由於settings.xml文件中沒有repositories的配置標籤,所以需要使用profile標籤來定義倉庫。

<profile>
    <!-- profile的id -->
    <id>dev</id>
    <repositories>
        <repository>
            <!-- 倉庫id,repositories標籤內可以配置多個倉庫,但要保證id不重複 -->
            <id>nexus</id>
            <!-- 倉庫地址,即nexus倉庫組的地址 -->
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <!-- 是否下載releases構件 -->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!-- 是否下載snapshots構件 -->
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <!-- 插件倉庫,maven的運行依賴插件也需要從私服下載 -->
        <pluginRepository>
            <!-- 插件倉庫的id不允許重複,如果重複後邊的配置會覆蓋前邊的配置 -->
            <id>public</id>
            <name>Public Repositories</name>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
        </pluginRepository>
    </pluginRepositories>
</profile>

一定要注意,以上配置要添加在settings.xml文件中的profiles標籤內。
在這裏插入圖片描述
使用profile標籤定義倉庫之後,需要激活纔可生效,也即需要激活模板。所以,還需要在settings.xml文件中添加如下配置。
在這裏插入圖片描述
settings.xml文件配置好了之後,我們可以通過eclipse來查看一下有效pom(有效pom是maven軟件最終使用的pom內容,程序員不能直接編輯有效pom),例如查看一下crm-dao項目的有效pom。
在這裏插入圖片描述
可以看到crm-dao項目的有效pom中有如下內容。
在這裏插入圖片描述
從以上內容中可得知有兩個倉庫地址,maven會先從前邊的倉庫找,如果找不到jar包再從下邊的倉庫找,從而就實現了從私服下載jar包。

測試從私服下載jar包

測試環境:局域網環境或本地網絡

首先,將本地倉庫中的由crm-dao項目打包成的jar包刪除掉。
在這裏插入圖片描述
此時,發現crm-service項目並沒有報錯,這是爲什麼呢?因爲它現在引用的是crm-dao這麼一個項目。
在這裏插入圖片描述
如果說現在我們在eclipse中把crm-dao項目關閉掉,並且切換到maven控制檯,你便能看到maven控制檯中輸出瞭如下信息。
在這裏插入圖片描述
項目先從本地倉庫找crm-dao,找不到再從私服找,由於之前執行deploy命令已經將crm-dao部署了到私服中,所以可以成功從私服上下載crm-dao並在本地倉庫中保存一份。
在這裏插入圖片描述
從私服下載jar包後,項目有可能會報錯,不用擔心,更新一下項目即可。

測試環境:互聯網環境

在項目的pom.xml文件中添加一個依賴,此依賴在本地倉庫和私服中都不存在,此時,maven會先從本地倉庫找,本地倉庫沒有再從私服找,私服沒有再去中央倉庫下載,jar包下載成功後,在私服、本地倉庫中分別存儲一份。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章