maven快速入门第十七讲——从私服下载jar包到本地仓库
沒有配置nexus之前,如果本地倉庫沒有,那么會去中央倉庫下載,通常在企業(yè)中會在局域網(wǎng)內(nèi)部署一臺私服服務(wù)器,有了私服之后,本地項目會首先去本地倉庫找jar包,如果沒有找到則連接私服從私服下載jar包,如果私服沒有jar包私服同時作為代理服務(wù)器從中央倉庫下載jar包,這樣做的好處是一方面由私服對公司項目的依賴jar包統(tǒng)一管理,一方面提高下載速度,項目連接私服下載jar包的速度要比項目連接中央倉庫下載jar包的速度快得多。
在本講中,我將會演示如何從私服上下載jar包(是將crm-dao項目打包成的jar包),并進行測試。
管理倉庫組
nexus中包括很多倉庫,hosted中存放的是企業(yè)自己發(fā)布的jar包及第三方公司的jar包,proxy中存放的是中央倉庫的jar包。為了方便從私服下載jar包,可以將多個倉庫組成一個倉庫組,每個工程需要連接私服的倉庫組下載jar包。
你有沒有想過如何來配置倉庫組啊?首先啟動nexus服務(wù),然后在瀏覽器地址欄中輸入http://localhost:8081/nexus/這樣的url地址進行訪問,接著你會看到在右上角有個Log In的超鏈接,點擊它并使用nexus內(nèi)置賬戶(用戶名是admin,密碼是admin123)進行登錄,登錄成功之后,你便會看到如下圖所示的效果。
點擊頁面左側(cè)的Repositories超鏈接就能看到倉庫組了,接著你就可以配置倉庫組了。
上圖中倉庫組包括了本地倉庫、代理倉庫等。
在settings.xml文件中配置倉庫
在客戶端的settings.xml文件中配置私服的倉庫,也稱之為配置模板。由于settings.xml文件中沒有repositories的配置標(biāo)簽,所以需要使用profile標(biāo)簽來定義倉庫。
<profile><!-- profile的id --><id>dev</id><repositories><repository><!-- 倉庫id,repositories標(biāo)簽內(nèi)可以配置多個倉庫,但要保證id不重復(fù) --><id>nexus</id><!-- 倉庫地址,即nexus倉庫組的地址 --><url>http://localhost:8081/nexus/content/groups/public/</url><!-- 是否下載releases構(gòu)件 --><releases><enabled>true</enabled></releases><!-- 是否下載snapshots構(gòu)件 --><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories><!-- 插件倉庫,maven的運行依賴插件也需要從私服下載 --><pluginRepository><!-- 插件倉庫的id不允許重復(fù),如果重復(fù)后邊的配置會覆蓋前邊的配置 --><id>public</id><name>Public Repositories</name><url>http://localhost:8081/nexus/content/groups/public/</url></pluginRepository></pluginRepositories> </profile>一定要注意,以上配置要添加在settings.xml文件中的profiles標(biāo)簽內(nèi)。
使用profile標(biāo)簽定義倉庫之后,需要激活才可生效,也即需要激活模板。所以,還需要在settings.xml文件中添加如下配置。
settings.xml文件配置好了之后,我們可以通過eclipse來查看一下有效pom(有效pom是maven軟件最終使用的pom內(nèi)容,程序員不能直接編輯有效pom),例如查看一下crm-dao項目的有效pom。
可以看到crm-dao項目的有效pom中有如下內(nèi)容。
從以上內(nèi)容中可得知有兩個倉庫地址,maven會先從前邊的倉庫找,如果找不到j(luò)ar包再從下邊的倉庫找,從而就實現(xiàn)了從私服下載jar包。
測試從私服下載jar包
測試環(huán)境:局域網(wǎng)環(huán)境或本地網(wǎng)絡(luò)
首先,將本地倉庫中的由crm-dao項目打包成的jar包刪除掉。
此時,發(fā)現(xiàn)crm-service項目并沒有報錯,這是為什么呢?因為它現(xiàn)在引用的是crm-dao這么一個項目。
如果說現(xiàn)在我們在eclipse中把crm-dao項目關(guān)閉掉,并且切換到maven控制臺,你便能看到maven控制臺中輸出了如下信息。
項目先從本地倉庫找crm-dao,找不到再從私服找,由于之前執(zhí)行deploy命令已經(jīng)將crm-dao部署了到私服中,所以可以成功從私服上下載crm-dao并在本地倉庫中保存一份。
從私服下載jar包后,項目有可能會報錯,不用擔(dān)心,更新一下項目即可。
測試環(huán)境:互聯(lián)網(wǎng)環(huán)境
在項目的pom.xml文件中添加一個依賴,此依賴在本地倉庫和私服中都不存在,此時,maven會先從本地倉庫找,本地倉庫沒有再從私服找,私服沒有再去中央倉庫下載,jar包下載成功后,在私服、本地倉庫中分別存儲一份。
總結(jié)
以上是生活随笔為你收集整理的maven快速入门第十七讲——从私服下载jar包到本地仓库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 04 MySQL多实例部署
- 下一篇: Maven无法从nexus私服下载依赖?