讀古今文學網 > Maven實戰 > 18.1.4 常用Archetype介紹 >

18.1.4 常用Archetype介紹

在編寫本書的時候,Maven中央倉庫中已經包含了249個Archetype(詳見http://repo1.maven.org/maven2/archetype-catalog.xml)。此外,還有大量沒有發佈到中央倉庫的Archetype分佈在其他Maven倉庫中。任何人都不可能全部瞭解它們,因此這裡只介紹幾個比較常用的Archetype。

1.maven-archetype-quickstart

maven-archetype-quickstart可能是最常用的Archetype,當maven-archetype-plugin提示用戶選擇Archetype的時候,它就是默認值。使用maven-archetype-quickstart生成的項目十分簡單,基本內容如下:

·一個包含JUnit依賴聲明的pom.xml。

·src/main/java主代碼目錄及該目錄下一個名為App的輸出「Hello World!」的類。

·src/test/java測試代碼目錄及該目錄下一個名為AppTest的JUnit測試用例。

當需要創建一個全新的Maven項目時,就可以使用該Archetype生成項目後進行修改,省去了手工創建POM及目錄結構的麻煩。

2.maven-archetype-webapp

這是一個最簡單的Maven war項目模板,當需要快速創建一個Web應用的時候就可以使用它。使用maven-archetype-webapp生成的項目內容如下:

·一個packaging為war且帶有JUnit依賴聲明的pom.xml。

·src/main/webapp/目錄。

·src/main/webapp/index.jsp文件,一個簡單的Hello World頁面。

·src/main/webapp/WEB-INF/web.xml文件,一個基本為空的Web應用配置文件。

3.AppFuse Archetype

AppFuse是一個集成了很多開源工具的項目,它由Matt Raible開發,旨在幫助Java編程人員快速高效地創建項目。AppFuse本身使用Maven構建,它的核心其實就是一個項目的骨架,是包含了持久層、業務層及展現層的一個基本結構。在AppFuse 2.x中,已經集成了大量流行的開源工具,如Spring、Struts 2、JPA、JSF、Tapestry等。

AppFuse為用戶提供了大量Archetype,以方便用戶快速創建各種類型的項目,它們都使用同樣的groupId org.appfuse。針對各種展現層框架分別為:

·appfuse-*-jsf:基於JSF展現層框架的Archetype。

·appfuse-*-spring:基於Spring MVC展現層框架的Archetype。

·appfuse-*-struts:基於Struts 2展現層框架的Archetype。

·appfuse-*-tapestry:基於Tapestry展現層框架的Archetype。

每一種展現層框架都有3個Archetype,分別為light、basic和modular。其中,light類型的Archetype只包含最簡單的骨架;basic類型的Archetype則包含了一些用戶管理及安全方面的特性;modular類型的Archetype會生成多模塊的項目,其中的core模塊包含了持久層及業務層的代碼,而Web模塊則是展現層的代碼。

更多關於AppFuse Archetype的信息,讀者可以訪問其官方的快速入門手冊:http://appfuse.org/display/apf/appfuse+quickstart。