MyEclipse&Maven專案管理教程:詳解Maven4MyEclipse
1. MyEclipse中的Maven整合
本篇概述為您介紹一下Maven的基本概念,以及如何在MyEclipse(Maven4MyEclipse)中使用Maven來提高Maven UI的工作經驗。Maven4MyEclipse無論是對於新手還是經驗豐富的開發者都同樣有用,因為它使最經常使用的Maven任務變得更容易。
Maven4MyEclipse是Maven和MyEclipse IDE之間進一步的整合。這種整合消除了一些Maven使用者最常見的障礙,包括:
- 從MyEclipse類路徑容器的後臺安裝Sun JARs到您的本地Maven倉庫中
- 執行時的JDK簡單配置和編譯時的Maven
- 簡單安裝自己的JAR到Maven倉庫中
通過消除這些進入門檻,您可以簡單的在MyEclipse的專案中使用Maven了,沒有額外的麻煩或設定來與之抗衡了。
2. 什麼是Maven?
在最簡單的意義上說,Maven是一個基於專案建設功能的核心聲譽的專案管理工具。許多人認為Maven只是一個構建的工具,但其基於外掛的性質(不同於Eclipse)允許它充當端對端的專案管理工具,提供一個幾乎無限陣列的功能。這些外掛的可變性導致了一些圍繞"什麼是Maven?"的問題。
Maven的核心設計是建立在依賴管理和單一的JAR庫基礎之上的。您專案的需求連同其它其它構建需求一起被定義。Maven遵循嚴格的JAR標準版本;在Maven當中典型的myproject.jar約定不通過稽核。它必須是myproject-1.3.7.jar,最壞也是myproject-SNAPSHOT.jar。Maven從(public or private)的倉庫中更新這些庫,每個被您拉入到本地Maven倉庫的都會被作為構建被執行。JARs被更新時嚴格遵循規則,管理可以宣告這些規則可作為該專案元資料(pom.xml)的一部分。
Maven專案被定義為約定優先於配置。換句話說,您除了不同之外不用定義一個Maven的pom.xml(專案定義檔案)中的任何東西,或者直接附加到一個標準的Maven專案上。因此,每個專案執行的核心階段是相同的,其中包括很多目標。甚至當一個Maven目標執行時額外自定義的外掛通常被放置在這些相同的階段當中。
注意:您可以從maven.apache.org中瞭解有關於Maven Lifecycle的更多資訊。
如果您是一個Ant使用者,寫核心構建指令碼對於您來說可能是Maven最難的部分。對於那些已經做了五年的企業開發人員來說這可能是非常令人費解的,特別是像Ant,您仍然可以根據自身的需求來自定義Maven。您甚至可以輕鬆地定製它,用電話直接進入Ant。
3. 在MyEclipse專案中使用Maven
Maven4MyEclipse的前提是,首先最重要的是,這是一個MyEclipse專案。這就意味著,它應該像前面其他任何MyEclipse專案一樣,有或者沒有Maven。所有的設定視窗、工具和一般可操作的專案應該是和其他一樣的。因此,如果您從來沒有遇到過一個單一的Maven目標,您的專案仍然以同樣的方式工作。同樣的,您的MyEclipse工具不會受Maven或它目標執行的任何影響。
Maven4MyEclipse使用兩種主要的方法來使普通的Maven任務變得更加容易。
- 在pom.xml中使用嚮導更輕鬆地定義資料,或Maven專案的元資料。
- 提供了標準和易於定製的選單來啟動您每天使用的Maven目標。
Maven4MyEclipse在原始碼方面建立符合傳統的MyEclipse專案結構。這使得您可以以同樣的方式來編寫您專案的程式碼,直到MyEclipse專案完成。類路徑容器和編譯的二進位制檔案都被構造為Maven約定,因此MyEclipse使用者首次遷移到Maven能兩全其美。
3.1 支援Maven的專案
Maven4MyEclipse使Maven支援MyEclipse Web專案、MyEclipse EJB專案、MyEclipse EAR專案和常規的Java專案。
Maven4MyEclipse建立Maven-enabled MyEclipse專案來同Maven和MyEclipse的工具同時進行工作。Maven-enabled MyEclipse專案同MyEclipse專案一樣能正常執行,同時提供任何典型MyEclipse專案所提供的所有相同的工具:檢視、編輯器、部署和除錯。你所需要的工具都沒有改變,所不同的是給您提供了不同的附加工具。
Maven-enabled MyEclipse專案的功能就像MyEclipse專案和Maven專案一樣;允許您使用MyEclipse IDE運行鍼對於他們的任何Maven目標、管理依賴關係等等。
匯入Maven專案同時與基於包含在pom.xml檔案中的資訊的相應元資料進行自動配置,使它們能立即部署和使用而無需額外配置。
3.2 Java EE配置器
MyEclipse自動檢測基於pom.xml或特定檔案的Maven專案,這使得匯入的Maven專案能立即使用。如果您修改pom.xml或新增新的配置檔案,它還會在稍後一段時間自動檢測。但您要停用特定的方面配置程式來避免不必要的安裝。
在全球範圍內的每個工作區,配置器可以通過選擇Window>Preferences,展開MyEclipse>Maven4MyEclipse>JavaEE Integration來被禁用。選擇您想要被啟用的Java EE配置器,預設情況下所有的配置器會被啟用。
啟用配置器要關閉一個專案的Maven facet配置器,必須在pom.xml中包含相應的屬性。例如,您不希望有自動安裝的JSF facet,開啟pom.xml,然後建立屬性,如下圖所示:
配置停用屬性用於支援facets的屬性名稱是:
- JSF – m2e.jsf.activation
- JAX-RS – m2e.jaxrs.activation
- JPA – m2e.jpa.activation
- Struts 1 & 2 – m2e.struts.activation
- Spring – m2e.spring.activation
- Hibernate – m2e.hibernate.activation
4. Maven4MyEclipse的相容性與命令列的Maven
Maven4MyEclipse和Maven-enabled MyEclipse專案與命令列Maven完美共存。
注意:如與任何外部產生假象,建議您在執行類似於Maven或Ant的程序後重新整理您的專案。
Maven4MyEclipse設計使命令列的Maven在大多數情況下是不必要,同時允許您停留在IDE中並可以從UI中執行所有的Maven任務。
5. Maven警示提醒
MyEclipse團隊將加入Maven工具設定來使開發人員能夠更輕鬆和有效的生成一個重要的步驟。這似乎非常奇怪,因為Maven阻擾使用者也是久負盛名的。我們已經移除了通常在最初幾個小時困擾Maven使用者的障礙。
- 輕鬆地安裝第一個Maven JAR
- 確保您的專案與沒有呼叫單個Maven目標的MyEclipse工具一起完美地工作
- 為大多數知名的Maven難題初始提供了參考和提示
作為一名開發者,強烈建議您處理Maven時就像處理任何新的和複雜的技術一樣。更具體地說,Maven有時可能會有一些粗糙的邊緣,所以如果您打算推出Maven超出工作空間到企業層面,那麼應該預算一些時間來處理這些問題。
Maven粗糙邊緣不無根據,這是一個更加強大的工具集。有些可以通過在伺服器級新增幾個儲存工具來處理。許多外掛也可用於成熟期的不同階段,任何一個外掛都可以消極地影響整個生命週期的構建,例如當一個外掛從公共庫中丟失時。