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

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

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

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


本地倉(cāng)庫(kù)中生成的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倉(cāng)庫(kù)的archetype-catalog.xml中 ,比如: ~/.m2/repository/archetype-catalog.xml

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


