----------------------------------------------------------------------------------------------
[版權申明:本文系做者原創,轉載請註明出處]
文章出處:http://blog.csdn.net/sdksdk0/article/details/52190619
做者:朱培 ID:sdksdk0 郵箱: zhupei@tianfang1314.cn
--------------------------------------------------------------------------------------------
html
Maven是一個採用純Java編寫的開源項目管理工具, Maven採用了一種被稱之爲Project Object Model(POM)概念來管理項目,全部的項目配置信息都被定義在一個叫作POM.xml的文件中, 經過該文件Maven能夠管理項目的整個生命週期,包括清除、編譯,測試,報告、打包、部署等等。目前Apache下絕大多數項目都已經採用Maven進行管理. 而Maven自己還支持多種插件, 能夠方便更靈活的控制項目, 開發人員的主要任務應該是關注商業邏輯並去實現它, 而不是把時間浪費在學習如何在不一樣的環境中去依賴jar包,項目部署等。java
maven和ant都是軟件構建工具(軟件管理工具),maven比ant更增強大,已經取代了ant,jar包的聲明式依賴描述。maven有jar包的倉庫。svn是一個軟件的版本控制工具,是一個協同開發工具。svn的倉庫存放的是項目的源碼,歷史版本的備份,聲明每次版本的修改狀況。
git
有些公司都不提供外網給項目組人員,所以就不能使用maven訪問遠程的倉庫地址,因此頗有必要在局域網裏找一臺有外網權限的機器,搭建nexus私服,而後開發人員連到這臺私服上,這樣的話就能夠經過這臺搭建了nexus私服的電腦訪問maven的遠程倉庫。github
若是某個IP地址惡意的下載中央倉庫內容,例如全公司100臺機器使用同一個IP反覆下載,這個IP(甚至是IP段)會進入黑名單,所以稍有規模的使用Maven時,應該用Nexus架設私服。web
第一步:下載nexus-webapp-2.6.2.war包,而後拷貝到tomcat下的webapps目錄中瀏覽器
第二步:啓動tomcat 默認登陸帳戶密碼爲: admin admin123 ,點擊右上角進行登陸。緩存
第三步:訪問http://localhost:8080/項目名稱/tomcat
Nexus倉庫的默認的地址,nexus-2.1.2\WEB-INF\plexus.properties 中定義的服務器
在Views/Repositories-->Repositories裏進行配置, nexus裏能夠配置3種類型的倉庫,分別是proxy、hosted、group 網絡
proxy:是遠程倉庫的代理。好比說在nexus中配置了一個central repository的proxy,當用戶向這個proxy請求一個artifact,這個proxy就會先在本地查找,若是找不到的話,就會從遠程倉庫下載,而後返回給用戶,至關於起到一箇中轉的做用
Hosted:是宿主倉庫,用戶能夠把本身的一些構件,deploy到hosted中,也能夠手工上傳構件到hosted裏。好比說oracle的驅動程序,ojdbc6.jar,在central repository是獲取不到的,就須要手工上傳到hosted裏
Group:是倉庫組,在maven裏沒有這個概念,是nexus特有的。目的是將上述多個倉庫聚合,對用戶暴露統一的地址,這樣用戶就不須要在pom中配置多個地址,只要統一配置group的地址就能夠了右邊那個Repository Path能夠點擊進去,看到倉庫中artifact列表。不過要注意瀏覽器緩存。
virtual:也是中央倉庫鏡像,支持M1老版本
- hosted :宿主倉庫 ,該倉庫屬於該公司私有的
1. 3rd part : 第三方的jar包,可是該jar包沒有在中心倉庫保存,驅動.jar
2. snapshot :測試版本、鏡像版本 easyNet.war
3. release : 發行版本
- proxy : 代理倉庫 :代理中心倉庫的jar包
- public :倉庫組 :虛擬的概念 能夠包含其餘的倉庫
直接選中你想要上傳到哪一個庫中,能夠設置組。這裏以上傳pig的jar爲例。選擇3rd party,而後填寫maven的座標(groupId+artifactId+version)。
咱們能夠在瀏覽器中查看是否已經上傳成功。這裏能夠看到已經有pig這個文件夾了。
在myeclipse中配置maven我在這裏就再也不說明了,網上有很是多的資料。咱們能夠在myeclipse中新建一個web項目,命名爲:nexusMaven,併爲其添加maven支持。在生成的這個maven項目中找到pom.xml,進行以下配置。
<distributionManagement> <!-- 發佈到 快照版本的倉庫,即 測試版本倉庫 --> <snapshotRepository> <id>snapshots</id> <url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/</url> </snapshotRepository> <!-- 發佈到 發行版本的倉庫中,也能夠發佈到3rd party 倉庫 --> <repository> <id>releases</id> <url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases/</url> </repository> </distributionManagement>
同時須要到咱們的maven的conf目錄下的settings.xml添加帳號密碼支持。大約在114行後面的servers中配置:
<server> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server>
而後回到咱們的myeclipse的項目中,右鍵這個項目,run as -> maven build ,而後輸入deploy進行部署。
這樣咱們的工程就上傳到了私服中。
能夠總瀏覽器中看到咱們剛纔上傳的這個工程。
一樣,在前面新建的maven工程中的pom.xml中進行配置。
<!-- 依賴pig.jar包,存在私服中 --> <!-- maven座標 --> <dependency> <groupId>pig</groupId> <artifactId>pig</artifactId> <version>0.12.1</version> </dependency> </dependencies> <!-- 假如沒有私服 ,則 本地倉庫找不到,則訪問中心倉庫 假若有私服 :訪問順序 首先訪問本地倉庫 本地倉庫沒有,則訪問私服倉庫 私服倉庫也沒有,則訪問中心倉庫 --> <!-- 加載的是 第三方項目使用的jar包 --> <repositories> <repository> <snapshots> <enabled>true</enabled> </snapshots> <id>public</id> <name>public</name> <url>http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/</url> </repository> </repositories> <!-- 加載的是maven生命週期插件的jar包 --> <pluginRepositories> <pluginRepository> <releases> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>true</enabled> </snapshots> <id>public</id> <name>public</name> <url>http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/</url> </pluginRepository> </pluginRepositories>
總結:使用nexus來搭建maven私有服務器是很是實用的功能,對於maven的環境搭建這裏就再也不重複囉嗦了。項目組開發人員開發時,只要在項目的pom.xml文件中,添加以下pom.xml信息便可獲取私服的jar.若是添加其餘的構件時,會先在nexus私服下載好,之後纔會下載到本地。之後,若是發現私服已經存在某一jar包,則會直接從私服下載,若是沒有再去網絡上下載。這就是搭建私服的好處.