Archetype介紹
Archetype是一個(gè)Maven項(xiàng)目的模板工具包,它定義了一類項(xiàng)目的基本架構(gòu)。Archetype為開發(fā)人員提供了創(chuàng)建Maven項(xiàng)目的模板,同時(shí)它也可以根據(jù)已有的Maven項(xiàng)目生成參數(shù)化的模板。通過Archetype,開發(fā)人員可以很方便地將一類項(xiàng)目的最佳實(shí)現(xiàn)應(yīng)用到自己的項(xiàng)目中。在一個(gè)Maven項(xiàng)目中,開發(fā)者可以通過Archetype提供的范例快速入門并了解該項(xiàng)目的結(jié)構(gòu)與特點(diǎn)。
官方文檔:https://maven.apache.org/archetype/index.html
Archetype使用
IDEA中創(chuàng)建
在IDEA中,我們可以通過New Project – Maven – Create from archetype,選擇某個(gè)archetype快速創(chuàng)建模板項(xiàng)目

命令創(chuàng)建
mvn archetype:generate
- 輸入命令后,Archetype插件會(huì)輸出一個(gè)Archetype列表供用戶選擇;選擇自己想要使用的Archetype,輸入對(duì)應(yīng)編號(hào)
- 提示輸入一些基本參數(shù),如groupId,artifactId,version,package等
-
Archetype插件生成項(xiàng)目骨架
命令創(chuàng)建
過濾器方式創(chuàng)建

跳過了選擇
archetype步驟
常用的archetype
maven-archetype-quickstart
默認(rèn)的Archetype,基本內(nèi)容包括:
- 一個(gè)包含junit依賴聲明的pom.xml
- src/main/java主代碼目錄及一個(gè)名為App的類
- src/test/java測(cè)試代碼目錄及一個(gè)名為AppTest的測(cè)試用例
maven-archetype-webapp
一個(gè)最簡單的Maven war項(xiàng)目模板,當(dāng)需要快速創(chuàng)建一個(gè)Web應(yīng)用的時(shí)候可以使用它。生成的項(xiàng)目內(nèi)容包括:
- 一個(gè)packaging為war且?guī)в衘unit依賴聲明的pom.xml
- src/main/webapp/目錄
- src/main/webapp/index.jsp文件
- src/main/webapp/WEB-INF/web.xml文件
Archetype開發(fā)
創(chuàng)建自定義模板
1.在maven項(xiàng)目下,執(zhí)行mvn archetype:create-from-project,在target/generated-sources/archetype目錄下生成Archetype project
2.cd target/generated-sources/archetype后,mvn install安裝archetype project到本地倉庫
ps:如果是maven多模塊項(xiàng)目,在根目錄下執(zhí)行mvn archetype:create-from-project
mvn install后,會(huì)在本地的maven倉庫,按照maven坐標(biāo)創(chuàng)建對(duì)應(yīng)的archetype文件

官方介紹:https://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html
例子:


本地倉庫中生成的archetype模板

使用自定義模板
1.在當(dāng)前的目錄下,mvn archetype:generate -DarchetypeCatalog=local,查看本地archetype列表
2.choose number,按步驟輸入基本參數(shù)groupId/artifactId/version/package
3.在當(dāng)前目錄下,以artifactId為目錄創(chuàng)建一個(gè)新的項(xiàng)目


添加到IDEA


添加自定義屬性參數(shù)

Archetype配置
mvn archetype:generate -DarchetypeCatalog=local
對(duì)應(yīng)的本地archetype列表,在本地maven倉庫的archetype-catalog.xml中 ,比如: ~/.m2/repository/archetype-catalog.xml

IDEA中的archtype配置,在 ~/Library/Caches/IntelliJIdea2017.1/Maven/Indices/UserArchetypes.xml中


