和Nexus同樣,m2eclipse也是Sonatype出品的一款開源工具,它基於Eclipse Public License-v.10開源許可證發佈,用戶能夠免費下載並使用,還能夠查看其源代碼m2 eclipse的官方站點地址爲http://m2eclipse.sonatype.org/。java
m2ecIipse爲Eclipse環境提供了全面豐富的Maven集成 它的主要功能以下:api
■ 建立和導人Maven項目瀏覽器
■ 管理依賴並與Eclipse的cIasspath集成網絡
■ 自動下載依賴eclipse
■ 自動解析依賴的sources 與javadoc包maven
■ 使用Maven Archetype建立項目編輯器
■ 瀏覽與搜索遠程Maven倉庫ide
■ 從Maven POM具體化一個項目工具
■ 從SCM倉庫簽出Maven項目優化
■ 自動適配嵌套的多模塊Maven項目至Eclispe
■ 集成Web Tools Projects (WTP)
■ 集成Subclipse
■ 集成Mylyn
■ 可視化POM編輯
■ 圖形化依賴分析
在m2eclipse中新建一個Maven十分簡單,在菜單欄中依次選擇File→New→Other。這時能夠看到下圖所示的嚮導:
選擇Maven Project以後,嚮導會提示用戶選擇是否跳過archetype而建立一個最簡單的Maven項目,這個最簡單項目將只包含最基本的Maven項目目錄結構,讀者能夠根據本身的須要進行選擇。
若是選擇使用Archetype建立項目,單擊Next按鈕以後,嚮導會提示用戶選擇Archetype,以下圖所示
如上圖所示,有4個Archetype Catalog可供用戶選擇,包括maven-archetype-plugin內置的Intemal、本地倉庫的Default Local、m2eclipse下載到倉庫索引中包含的Nexus Indexer,以及全部這3個合併獲得的All Catalogs。若是對Archetype Catalog不是很清楚。通常來講,只須要選擇Internal。而後再選擇一個Archetype,如maven-archetype-quiCk-start,最後單擊Next按鈕。
接下來要作的就是輸入項目座標Group Id、Artifact Id、Version以及包名。這一個步驟與在命令行中使用Archetype建立項目相似,若是Archetype有其餘可配置的屬性,用戶也能夠在這裏一併配置,以下圖所示。
單擊Finish按鈕以後,m2eclipse就會快速地在工做區建立一個Maven項目,這同時也是一個Eclipse項目。
較之於建立新的Maven項目,實際工做中更常見的是導人現有的Maven項目。m2eclipse支持多種導入的方武,其中最經常使用的是導人本地文件系統的Maven項目以及導入SCM倉庫中的Maven項目。
單擊菜單欄中的File,而後選擇Import開始導人項目,以下圖所示:
從上圖中能夠看到在Maven類中有4種導人方式,經常使用的就是第一種和第二種,即導入SCM倉庫中的Maven項目和導入本地文件系統的Maven項目。圖中的Install or deploy an artifact to a Maven repository能讓用戶將任意的文件安裝到Maven的本地倉庫。若是該文件沒有對應的POM,則須要爲其定義Maven座標。 圖中的Materialize Maven Projects能讓用戶導人第三方的Maven項目,用戶只須要提供一些關鍵字如nexus-api,而後選擇要導人的項目,m2eclipse就能基於索引找到其對應的POM信息。若是該POM中包含了SCM信息,m2eclipse就能直接下載該項目的源碼並導人到m2eclipse中。當用到某個第三方類庫,同時想研究其源碼的時候,這一特性就很是有用,你再也不須要打開瀏覽器去尋找該項目的信息,簡單地在m2eclipse中操做幾步就能完成第三方項目的導人。固然,這一特性的前提是第三方類庫提供了正確的SCM信息。大多數開源項目在往Maven中央倉庫提交構件的時候都會提供完整的信息,但也有例外,爲了不信息不完整的項目進入Maven中央倉庫,最新的規則已經強制要求提交者提供完備的信息,如SCM、許可證以及源碼包等。這無疑能幫助m2eclipse表現得更好。
如今詳細介紹一下如何導人本地Maven項目:選擇上圖中的Existing Maven Projects選項,而後在彈出的對話框中選擇本地項目所在的目錄,以下圖所示。m2eclipse可以自動識別出目錄中所包含的Maven項目,若是發現是多模塊項目,則會列出全部的模塊。用戶能夠根據本身的須要選擇要導人的模塊,而後單擊Finish按鈕二m2eclipse會執行導人項目信息、更新下載項目依賴,以及重建工做區等操做,根據實際項目的狀況,這個過程可能花費幾十秒到十幾分鍾:
一般咱們的項目源代碼都存儲在SCM倉庫中,例如Subversion倉庫,讀者固然可使用Subversion命令將項目源碼簽出到本地,而後再導入到m2eclipse中,但m2eclipse支持用戶直接從SCM倉庫中導人Maven項目。
要從SCM導人Maven項目,首先須要確保安裝了集成SCM的Eclipse插件,如Subclipse,還須要m2eclipse的附屬組件Maven SCM Integration以及對應的SCM handler,如集成Subclipse的Maven SCM handler for Subclipse。若是這些組件都得以正確安裝,就能夠選擇下圖中的Check out Maven Projects fromSCM:
在單擊Next按鈕以後,選擇SCM類型並輸入SCM地址,以下圖所示:
單擊Next按鈕以後,用戶能夠選擇項目導入的本地位置,而後單擊Finish按鈕,m2elipse就會在後臺使用SCM 工具簽出項目許執行Maven構建。
有了m2eclipse,用戶能夠直接在Eclipse中瀏覽本地和遠程的Maven倉庫,而且可以基於這些倉庫的索引進行構件搜索和Java類搜索。這樣就免去了離開Eclipse訪問本地文件系統或者瀏覽器的麻煩,提升了平常開發的效率。
m2eclipse提供了Maven倉庫視圖,能讓用戶方便地瀏覽本地及遠程倉庫的內容,不過默認狀況下該視圖不被開啓。要開啓Maven倉庫視圖,依次選擇Eclipse菜單欄中的Windows→Show View→Other選項,Eclipse會彈出一個對話框讓用戶選擇要打開的視圖,選擇Maven類下的Maven Repositories,以下圖所示:
這時能夠在Eclipse窗口下方看到Maven倉庫視圖,這個視圖中包含了4類Maven倉庫,分別爲:
■ 本地倉庫
■ 全局倉庫
■ 項目倉庫
■ 自定義庫
以下圖所示:
其中,本地倉庫包含了Maven的本地倉庫以及當前Eclipse工做區的項目;全局倉庫默認是Maven中央倉庫,可是若是在settings.xml中設段了鏡像,全局倉庫就會自動變動爲鏡像倉庫。最後,若是當前Maven項目的pom. xml中配置了其餘倉庫,它們就會被自動加入到項目倉庫這一類中。這些倉庫的信息來源於用戶的settings. xml文件和工做區中Maven項目的pom.xml文件。
用戶能夠以樹形結構快速瀏覽倉庫的內容,雙擊葉子節點,打開構件對應的POM文件,以下圖所示。
你們可能已經猜到,m2eclipse其實不會真正地去存儲全部倉庫的內容,那樣須要消耗大量的磁盤及網絡帶寬。所以與Nexus同樣,m2eclipse使用nexus-indexer索引倉庫內容的信息。以全局倉庫central爲例,用戶在首次使用m2eclipse的倉庫瀏覽及搜索功能以前,須要構建該倉庫的索引,在以下圖所示的倉庫上右擊。
快捷菜單中的Rebuild Index讓m2eclipse從新下載完整的遠程索引,因爲當前倉庫是central,索引文件較大,所以重建該索引會消耗比較長的時間。Update Index則讓m2eclipse以增量的方式下載索引文件。若是是本地倉庫,Update Index將沒法使用,而Rebuild Index的效果是從新遍歷本地倉庫的文件創建索引。
上圖中的菜單還有幾個選項,Disable Index Details讓m2eclipse關閉該倉庫的索引,從而用戶將沒法瀏覽該倉庫的內容,或者對其進行搜索。Minimum Index Enabled表示只對倉庫內容的座標進行索引,而Enable Full Index不只索引倉庫內容的座標,還索引這些文件所包含的Java類信息,從而可以支持用戶搜索倉庫中的Java類.
有了倉庫索引以後,用戶就能夠經過關鍵字搜索Maven構件了。單擊Eclipse菜單欄中的Navigate,再選擇Open Maven POM選項,就能獲得構件搜索框。輸入關鍵字後就能獲得一個結果列表,還能夠點擊列表項進一步展開以查看版本信息,以下圖所示。雙擊某個具體版本的構件,能讓m2eclipse直接打開對應的POM文件。
若是爲倉庫開啓了Enable Full Indexdt選項,也就是說索引中包含Java類型信息,則就能夠經過Java類名的關鍵字尋找構件。單擊Eclipse菜單欄中的Navigate,再選擇Open type from maven就能獲得類搜索框。輸入關鍵字後,就能獲得下圖所示的搜索結果。一樣,用戶能夠單擊列表項展開其版本,還能夠雙擊具體版本打開其POM。這樣不用離開Eclipse,用戶就能隨時搜索想要使用的類庫以及Java類,m2eclipse僅僅要求用戶提供一些必要的關鍵字,這無疑是很是方便的。
添加Maven依賴的傳統作法是先搜索獲得依賴的座標,而後配置項目的pom. xml文件,加入dependency元素。固然,在m2eclipse中也能夠這樣作,不過m2eclipse提供了更方便的添加依賴的方法,用戶直接根據關鍵字搜索依賴並從結果中選擇便可。此外,m2eclipse還提供了豐富的可視化界面幫助用戶分析項目中的各類依賴以及它們之間的關係。
在m2eclipse中有多種添加依賴的方法,直接編輯pom.xml是一種,不過這裏要講的是另外兩種更方便的作法。
第一種
首先用戶能夠在項目上或者pom. xml上右擊,而後選擇Maven,再選擇Add Depenclency添加依賴,以下圖所示:
在彈出的對話框中,用戶只須要輸入必要的關鍵字,而後選擇要添加的依賴及版本,而且設定正確的依賴範圍,單擊OK按鈕以後,依賴就被自動加入到pom.xnil中,以下圖所示,就爲項目添加了javax.servlet:servlet-api:2.5這樣一個依賴,而且在圖的下方選擇了provided這樣的一個範圍。
第二種
第二種快速添加依賴的方式是使用m2eclipse的POM編輯器。默認狀況下,用戶雙擊項目的pom.xml就能打開POM編輯器,POM編譯器下方有不少選項卡,包括概覽、依賴、插件、報告、依賴層次、依賴圖、Effective POM等。其中,依賴(Dependencies)一項能夠用來添加、刪除和編輯依賴,以下載所示。
注意:若是,雙擊看不到上面的界面。多是由於,安裝的m2e插件自己就是不全的,裏面根本沒有pom editor。因此須要下載pom editor的zip包:
http://download.csdn.net/detail/honestjiang/8508393
解壓以後,直接放到原來那個m2e的插件包 的plugin下面便可,即m2eclipse\eclipse\plugins\org.eclipse.zest.XXX的兩個zip,重啓以後,右 鍵pom.xml即有pom editor打開方式了。
單擊上圖中上方的Add按鈕,就能獲得以下圖所示的添加依賴對話框:
此外,從圖中還能夠看到,用戶能夠查看依賴的細節並對其進行編輯。添加項目依賴以後,若是m2eclipse沒有自動將依賴更新至項目的構建路徑,用戶能夠強制要求m2eclipse更新,方法是在項目或者pom. xml上右擊,選擇Maven,再選擇Update Dependencies或ctrl+S保存。
介紹瞭如何使用maven-dependency-plugin分析並優化項目的依賴,Maven用戶能夠在命令行以樹狀的形式查看項目的依賴以及它們之間的關係;有了m2eclipse,這種可視化的分析將更爲清晰和直觀。
開啓POM編輯器中的依賴層次項(Dependency Hierarchy),就能看到圖下圖所示的依賴層次圖。
上圖中左邊列表顯示了項目的樹形依賴層次,右邊列表則是全部Maven最終解析獲得的依賴。默認狀況下,兩個列表都會顯示依賴的artifact、versIon以及scope。要查看依賴的groupld,能夠單擊列表上方右起第二個按鈕Show Groupld。
有了這樣一個依賴層次圖,用戶就能很清晰地看到全部依賴是如何進入到項目中來的,可能這是個直接依賴,那麼在左邊的它就是個頂層節點;可能這是個傳遞性依賴,那麼這個樹形層次就可以告訴用戶傳遞路徑是什麼;若是這個依賴是同一Maven項目的另一個模塊,那麼它的圖標將與其餘依賴不一樣,而是一個文件夾的樣子,若是用戶單擊右邊已解析依賴列表中的任意一項,左邊就會自動更新爲該依賴的傳遞路徑。
若是,您認爲閱讀這篇博客讓您有些收穫,不妨點擊一下右下角的【推薦】。
若是,您但願更容易地發現個人新博客,不妨點擊一下左下角的【關注我】。
若是,您對個人博客所講述的內容有興趣,請繼續關注個人後續博客,我是【Sunddenly】。本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利