Maven 自定義archeType

1. 什么是archeType

我們?cè)趧?chuàng)建maven項(xiàng)目的時(shí)候,你會(huì)發(fā)現(xiàn)有這么多的apache提供的模板。


或者使用mvn archetype:generate命令來(lái)快速創(chuàng)建maven項(xiàng)目,也會(huì)有很多個(gè)選項(xiàng),讓你選擇模板序號(hào)。那每個(gè)模板之間有什么區(qū)別呢?

每個(gè)模板里其實(shí)就是附帶不同的依賴和插件。一般在公司私服里都會(huì)有屬于本公司的一套archeType模板,里面有著調(diào)試好的項(xiàng)目用到的依賴包和版本號(hào)。

2. 創(chuàng)建archetype

假如自己已經(jīng)有了一個(gè)maven項(xiàng)目,想給該項(xiàng)目創(chuàng)建一個(gè)archeType模板。

cd 到項(xiàng)目根目錄下執(zhí)行(pom.xml同級(jí)目錄)。

mvn archetype:create-from-project 

此時(shí)會(huì)在項(xiàng)目target下生成這些文件:

3. 生成archetype模板

先  cd target/generated-sources/archetype/

然后執(zhí)行 mvn install 

執(zhí)行成功后,執(zhí)行crawl命令,在本地倉(cāng)庫(kù)的根目錄生成archetype-catalog.xml骨架配置文件:

mvn archetype:crawl

來(lái)看一看它里面的內(nèi)容:

[fantj@lalala repository]$ cat archetype-catalog.xml 
<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <archetypes>
    <archetype>
      <groupId>com.fantj</groupId>
      <artifactId>my-self-defind-archtype-archetype</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <description>my-self-defind-archtype</description>
    </archetype>
  </archetypes>
</archetype-catalog>

4. 使用archetype模板

執(zhí)行mvn archetype:generate -DarchetypeCatalog=local從本地archeType模板中創(chuàng)建項(xiàng)目。

 mvn archetype:generate -DarchetypeCatalog=local

然后會(huì)讓你選擇模板序號(hào)和groupId``artifactId``versionpackage信息:

Choose archetype:
1: local -> com.fantj:my-self-defind-archtype-archetype (my-self-defind-archtype)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1
Define value for property 'groupId': com.fantj
Define value for property 'artifactId': my-self-defind-archetype-test
Define value for property 'version' 1.0-SNAPSHOT: : 
Define value for property 'package' com.fantj: : 
Confirm properties configuration:
groupId: com.fantj
artifactId: my-self-defind-archetype-test
version: 1.0-SNAPSHOT
package: com.fantj
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: my-self-defind-archtype-archetype:0.0.1-SNAPSHOT
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.fantj
[INFO] Parameter: artifactId, Value: my-self-defind-archetype-test
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.fantj
[INFO] Parameter: packageInPathFormat, Value: com/fantj
[INFO] Parameter: package, Value: com.fantj
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.fantj
[INFO] Parameter: artifactId, Value: my-self-defind-archetype-test
[INFO] Project created from Archetype in dir: /home/fantj/IdeaProjects/maven-tutorial/my-self-defind-archetype-test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

項(xiàng)目創(chuàng)建成功!

當(dāng)然,也可以使用IDEA來(lái)幫我們用圖形界面使用archeType模板創(chuàng)建項(xiàng)目:
圖1

圖2

圖3

后面的就與創(chuàng)建普通項(xiàng)目相同了,不做演示。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容