接上回繼續,相信大家對maven每次都聯網從國外站點下載依賴項的龜速網絡已經不坎忍受了,今天先來看看如何搭建"倉庫私服",目前nexus是使用比較廣泛的私服軟件之一,下面將介紹基本用法:
一、到nexus官網下載最新版
1.1 下載地址:http://www.sonatype.org/downloads/nexus-latest-bundle.zip (目前最新版本是2.7.2-03)
(2015-07-02注: 上面的下載地址好象已經失效了,新的地址為 http://www.sonatype.org/nexus/archived/ )
1.2 下載完后,解壓到指定目錄,比如:c:\java\nexus\
1.3 啟動nexus
%nexus_home%\bin\nexus.bat install (安裝成windows服務)
%nexus_home%\bin\nexus.bat start (啟動)
tips : 直接nexus.bat不帶參數,會顯示完整的參數列表
參考下圖,如果啟用不起來,檢查jdk版本,nexus要求1.7版本(如果版本不對,請調整環境變量JAVA_HOME指向jdk1.7的目錄)
如果換成1.7還是啟用不了,建議用nexus.bat console 控制臺方式啟用,這樣可以看到詳細啟動過程
啟動成功后,可以用http://localhost:8081/nexus 進入控制界面
點擊右上角的Log In,默認用戶名/密碼是admin/admin123
二、添加jboss資源庫地址
2.1 先了解下nexus的資源庫類型:
Hosted Repository - nexus本機的資源庫(相當于nexus所在服務器硬盤上已經存在的jar、pom文件庫)
Proxy Repository - 代理庫,很多開源官方組織都在互聯網上公布了Repository,供全世界的開發者使用,nexus中設置該類型的資源庫后,其它使用nexus的開發者,表面上是在請求nexus服務器上的jar包,但nexus實質是背后是在請求這些互聯網資源,首次會把服務器上沒有的資源,從網上download到nexus服務器(以文件形式保存到硬盤上),然后再返回給開發者,下次再有同樣的pom/jar請求時,直接從服務器硬盤上返回,不再請求互聯網
Repository Group - 資源組,比如我們有很多資源庫:資源庫A、資源庫B...,可以把它們再成組合一個特殊的資源C,然后其它開發人員,在maven里配置資源C地址,這樣maven在向資源C請求jar包里,實質會搜索資源A、資源B
2.2 添加jboss 代理資源庫
maven默認的官方資源庫http://repo1.maven.org/maven2/,很多第三方的jar包沒有,所以我再添加一個jboss的資源庫
點擊左側的Repositories,然后再點擊右側的Add,會彈出下拉菜單,選擇Proxy Repository
接下來,參考下圖填寫:
Respository ID這里填寫:jboss-public-repository-group (可以自已改名字)
Respository Name這里填寫:JBoss Public Maven Repository Group (可以自已改名字)
其它項保持默認
Remote Storage Location這里填寫:https://repository.jboss.org/nexus/content/groups/public-jboss/ (這是jboss公布的公開資源庫)
2.3 下載jboss eap 6.x的離線資源包
首次使用nexus時,私服服務器上實質上沒有任何jar包的緩存,所以第一次使用時,其實跟直接到互聯網上下載沒啥區別,只有后面再請求相同的jar包,服務器上才會有jar文件緩存,為了加快速度,我們可以直接上jboss官網下載離線資源包
下載地址: htp://www.jboss.org/jbossas/downloads
然后解壓到指定目錄,建議放在 %nexus_home%\sonatype-work\nexus\storage\ 下
然后add一個hosted repository,參考下圖:
2.4 把剛才添加的二個respoitory添加到Public Repositories組
剛才我們添加了二個新的資源庫,檢查一下是否包括在默認的Public Repositories組里
如果沒包括在組里,參考上圖處理一下,然后保存。最后建議更新一下索引,參考下圖:
三、修改本機當前用戶下.m2目錄下的settings.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 6 7 <mirrors> 8 <mirror> 9 <id>nexus</id> 10 <mirrorOf>*</mirrorOf> 11 <url>http://192.168.0.110:8081/nexus/content/groups/public/</url> 12 </mirror> 13 </mirrors> 14 15 <profiles> 16 <profile> 17 <id>nexus</id> 18 <repositories> 19 <repository> 20 <id>nexus</id> 21 <name>Nexus</name> 22 <url>http://192.168.0.110:8081/nexus/content/groups/public/</url> 23 <releases><enabled>true</enabled></releases> 24 <snapshots><enabled>true</enabled></snapshots> 25 </repository> 26 </repositories> 27 <pluginRepositories> 28 <pluginRepository> 29 <id>nexus</id> 30 <name>Nexus</name> 31 <url>http://192.168.0.110:8081/nexus/content/groups/public/</url> 32 <releases><enabled>true</enabled></releases> 33 <snapshots><enabled>true</enabled></snapshots> 34 </pluginRepository> 35 </pluginRepositories> 36 </profile> 37 </profiles> 38 <activeProfiles> 39 <activeProfile>nexus</activeProfile> 40 </activeProfiles> 41 42 </settings>
注:大家自行把這段xml中的地址換成nexus服務器的ip。
然后隨便創建一個maven項目,執行mvn clean package 之類,觀察下輸出:
從上圖可以看出,現在依賴項都是從nexus服務器下載的
四、eclipse中添加資源xml
最后再補充一個小技巧,這跟私服其實關系不大。每次我們在eclipse里創建maven project時,都會彈出一個界面,讓我們選擇“項目模板“,這個過程需要聯網獲取模板列表,而且每次都次重復獲取,很不合理,如下圖:
可以點擊Confiure,會彈出以下界面,點擊”Add Local Catalog“
先在瀏覽里訪問 https://repository.jboss.org/nexus/content/groups/public-jboss/archetype-catalog.xml 這個地址,然后保存為xml文件,接下面的界面里 Catalog File里,選擇這個xml文件,然后Description填寫一個名字
然后在創建Maven項目時,就可以直接選擇這個了,選擇后,將直接讀取本機xml的內容,比聯網獲取要快得多
最后給一個小技巧:
有時候,在單位的局域網里架構nexus服務器,服務器并不能訪問外網,這樣就無法通過代理庫從互聯網下載jar包,可以這樣做:
開發人員的機器通常是能上網的,先在本機修改settings.xml,不走nexus私服,直接從互聯網中央倉庫下載一次,把所有東西編譯好以后,將本機 "當前用戶\.m2\repository"復制到nexus私服服務器的相應存儲目錄,一般則nexus同級目錄下的sonatype-work\nexus\storage\central 目錄,然后再登錄nexus管理界面手動更新索引,以后其它人就能正常使用nexus私服了。
下一節將學習如何利用profile來生成各種不同環境的部署包
文章列表