Nexus搭建Maven私服
公司一般都有個自己的私服來管理各種jar包,原因大概有這麽3個,分別是:
1、有的公司不能訪問外網,只能通過私服來管理jar包和插件;
2、公司網速比較慢,通過公司的私服來獲取jar包比較快;
3、內部的的一些jar包放在私服上,比較方便的大家使用。
這裏簡單介紹下搭建Nexus環境,並且在eclipse mvn插件環境下來上傳jar包。
Nexus環境搭建:
說明:這裏是Windows環境,Linux類似。
1、下載Nexus安裝文件:http://www.sonatype.org/nexus/go ,目前是nexus-2.13.0-01-bundle.tar.zip這個最新版本;
2、解壓到任意目錄,我這裏解壓到E盤,進入E:\nexus-2.13.0-01\bin\jsw\windows-x86-64,點擊install-nexus.bat安裝成為windows服務,這裏選擇自己計算機對應的文件;
3、訪問http://localhost:8081/nexus/,這就是私服;
4、點擊右上角登錄,默認帳號admin,密碼admin123;
5、點擊左邊Repositories,可以看到一系列倉庫類型,我們一般使用3個,分別是Releases,Snapshots和3rd party。這3個倉庫風別是裝穩定版,開發版和第三方jar包 。
6、舉例,手動上傳一個jar到Releases倉庫裏面。
7、上面是手動方式,另外一種是利用mvn直接發布到私服上面來,需要修改2個地方,第一是在settings文件的servers節點下加入,這是配置私服的密碼和倉庫,配合pom文件中的倉庫地址就構成了完成的訪問私服的要素,帳號和密碼之所以在settings中設置,是由於settings文件是本地的,而pom.xml文件是公共的,不安全,所以放在settings中:
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
第二是在pom.xml中增加,下面的id和settings中的id必須要一樣。
<distributionManagement>
<repository>
<id>nexus-release</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/nexus/content/repositories/release/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
上面的私服兩個倉庫的url從什麽地方獲取呢?如下圖:
8、新建一個mvn項目,
1、運行source:jar在target下生成源碼jar包;
2、運行deploy,class的jar包發布到私服;
3、運行source:jar deploy,連同源碼一起發布到私服。
9、完成,在其他項目中可以使用上面的jar包了。
10、a.貼兩個以前遇到過的小異常過來,在eclipse中配置mvn的時候可以分別配置mvn的目錄和settings文件,不過最好是二者是同一個版本的,不然有可能就會出問題。
b.我們有時候明明<dependency>沒寫錯,卻偏偏各種報錯,可以刪掉本地對應的jar,重新下載,就ok了。
11、學習建議:mvn這個東西,就是難者不會,會者不難。基本上按照這樣一個路線就問題不大,基本使用 => 了解繼承/聚合 => 了解jar包沖突機制,並解決沖突 =>了解mvn的3個默認聲明周期 ,生命周期的各個階段phase ,各個階段的目標goal => mvn的插件開發 => Nexus私服搭建及其使用。大致這樣一個過程下來,就能非常熟悉mvn,如果在稍微看看mvn的源碼,大致看一看,基本上可以說是精通mvn了。
《Nexus3.x.x上傳第三方jar》參考:http://blog.csdn.net/iopfan/article/details/71107686
轉:http://www.cnblogs.com/dreamroute/p/5440419.html
Nexus搭建Maven私服