maven作用


1.控制項目間依賴關系方案

 A項目依賴B項目的某些功能。將B項目打包為jar,並在A項目的Library下導入B的jar文件。

    這樣做有着很明顯的缺點:
        1.如果在開發過程中,發現B中的bug,則必須重新將B打包並對A項目進行重編譯操作
        2.在協同開發A項目時,為了保證其能夠正常運行,

要么選擇將B打包入A中,

要么選擇將B一樣發布出去並告知開發者使用方法。顯然這兩個方法都不太好,

*前者可能造成資源浪費(比如開發者可能正在開發依賴B的其它項目,B已經存儲到本地了),而后者則會為項目正常運行帶來風險(一旦把工作交給人工注定會帶來一定的失敗率)。

2Maven的核心功能便是合理敘述項目間的依賴關系。

    所有的Maven項目包含着一個名為pom.xml的文件,在文件中記錄着自己的<groupId><artifactId><version>等字段,這些字段在創建Maven項目時填寫,Maven會依據它們來定位到該項目。
    在pom中的另一個關鍵標簽是<dependencies>,該標簽下可以包含若干個<dependency>標簽,而<dependency>下則是上面介紹的<groupId><artifactId><version>等依賴字段,它們確定着一個唯一的項目版本。

3[Maven庫]

    以剛才的A、B項目為例,在A項目的pom文件中寫入<dependency>關聯B項目,Maven會在工作區中找到B項目,並創建依賴。此時A項目可以直接訪問到B項目中的類資源,而且對A調試時依然會擊中B項目中設置的斷點。
    除去工作區的依賴關聯外,Maven也可以關聯一個遠端鏡像中的項目,在默認情況下,如果工作區中沒有對應的項目記錄,Maven會連接到中心倉庫查找,如果找到,它會把項目下載到本地庫中(Windows中本地庫位於用戶文檔的.m2目錄下),並自動設置關聯。這是一個十分便利的特性,在我們需要額外jar包支持時,不再需要進行手動的下載和引入,我們僅需要將需要項目對應的依賴字段粘貼到pom的合適位置,剩下的交給Maven完成即可。

 

4.[其它特性]
    1.鏡像源
很明顯,Maven中心倉庫負載比較大,而且不在國內,因此速度非常慢,有時甚至會找不到依賴。因此,尤其是在小規模團隊開發這種場合下,搭建一個Maven私服會極大的提升效率。這里推薦一個Maven鏡像搭建工具:Nexus:http://www.sonatype.org/nexus/
使用它可以很快速方便的搭建私有Maven鏡像源,之后在Maven的settings.xml里進行配置即可。
    2.惰性下載src源碼
在一些時候,我們需要參閱依賴項目的源文件,此時可以嘗試直接雙擊class文件,如果Maven鏡像源中存在源文件,會自動下載到本地,eclipse會自動加載並顯示。
    3.編譯參數配置
筆者使用Eclipse Luna版,Maven默認的Java編譯版本為1.5,我們可以在pom指定其編譯版本,使其提升至1.7(參考luajava pom中的build標簽);此外這些設置也會被諸如jenkins持續集成等自動化工具讀取並進行恰當配置。

 

思考:

maven描述項目間依賴,在pom.xml中描述之后,maven會下載相關依賴,不需要手動導入。

並且該文件可以描述build相關信息,jenkins可以讀取相關信息

 

 

參考博文:通俗理解maven


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM