轉載請注明原文地址:http://www.cnblogs.com/ygj0930/p/6625724.html
一:目前開發存在的問題
在沒有Maven之前,我們開發一個項目,需要自行導入各種不同的jar包。當依賴包數量多起來,就很難管理了。而且,如果團隊開發時,一個人提交的項目所使用的IDE版本與另一個人的不一致,那么所提及的項目就可能不能正常地在別人的IDE中編譯、運行。總的來說,大概有以下幾類問題:
1:jar包太多,需要手動下載、導入,比較麻煩;
2:jar包有依賴沖突時,需要自行排查;
3:使用ant腳本構建項目時,需要寫很多重復的任務;
4:項目拷貝給別人時,不僅源代碼,還需要拷貝大量jar包;
5:測試項目時,需要一個個運行測試;
二:Maven能干什么
Maven現在越來越流行,已經逐步取代Ant。它比Ant單一的批處理功能提供更多實用服務。
1:依賴管理:通過一個xml文件,同一管理項目中所以jar包。開發項目時,需要用到的jar包只需在配置文件中配置好幾個相關信息,Maven就會自動下載、導入到項目中,並且如果該jar包有依賴包,也會自動一並下載、導入。如果項目有jar包依賴沖突,只需通過Maven的 mvn -X compile dependency:tree -Dverbose 指令即可自動排查出沖突的jar包信息。
2:項目構建:這一步類似Ant,可以通過Maven的配置腳本批處理項目的編譯、測試、打包、部署、發布等操作;
3:信息管理:管理項目的相關信息,比如版本信息、開發者信息等。
三:Maven依賴管理簡介
1:在pom.xml中進行同一配置,管理;
2:對每個jar包,通過:groupId、artifactId、version 三個信息唯一確定一個jar包;
3:jar包的來源:在配置好jar包信息后,Maven是如何高效率地找到所需jar包並下載導入的?主要有三個來源。
1)本地資源庫:Maven安裝后會在本機創建一個reposity文件夾,執行pom.xml時會把jar包下載到這里來,如果已經有的,就不會再下載。相當於一個本地緩存。
2)共享資源庫:即中央資源庫,Maven有一個中央倉庫存放來自全世界的共享jar包,通過配置的 groupId、artifactId、version 即可在中央倉庫中唯一定位jar包,然后下載到本地資源庫中。
3)私人資源庫:也叫中轉資源庫。對於一個公司而言,有可以有自己開發的jar包,並且不想公開出去;還有,公司可以提供一個jar包中轉站,把網上常用的jar包先下載到一個倉庫中,公司程序員在本地資源庫找不到所需jar包時可以先到公司的資源庫尋找、下載,這樣就無需到網上下載了。這個資源庫就是私人資源庫。
4:jar包的尋找過程:執行pom.xml—>本地資源庫尋找—>私人資源庫尋找—>中央資源庫尋找
5:Maven資源庫配置:進入maven安裝目錄/conf/ ,編輯 settting.xml:
本地倉庫:<localRepository>:表示本地庫的保存位置,也就是maven2主要的jar保存位置,默認在${user.dir}/.m2/repository,如果需要另外設置,就換成其他的路徑。
共享倉庫:Mirrors 表示鏡像庫,指定庫的鏡像,用於增加其他庫(私庫、遠程庫)
關於Maven的具體使用,會在后面詳細記錄。