1、archetype是什麼?

archetype 字面意思是 原型.可以理解為archetype相當於一個腳手架/模板,通過這個腳手架/模板我們可以快速的創建出一個專案.

比如下圖中的這些就是maven給我們預設提供的archetype

通過其中的 maven-archetype-webapp,我們可以快速構建一個webapp專案.可以節省一定的工作量.

畢竟在實際的開發工作中,尤其是在專案型公司,每次新專案,都是要進行類似的專案初始化的搭建工作,工作量還是不算小的,而且一不小心就出錯了.

本文講的就是如何定製一個腳手架/模板(第二章),以及部署到私服上提供給團隊使用時撞見的一些問題(第三章).

2、建立及使用

2.1、建立archetype

首先,模板的建立是基於已有專案的,什麼意思呢?就是你要先有一個專案,然後以這個專案為基礎建立一個模板。這裡假設已經存在一個專案了。

進入專案的根目錄,也就是pom.xml檔案所在目錄執行以下命令(maven的基礎環境就不說了)。

mvn archetype:create-from-project

等待一會發現根目錄下出現一個target目錄,目錄結構如下:

2.2、安裝archetype

進入archetype目錄下,執行如下命令將archetype安裝到本地倉庫

mvn install

進入你的本地倉庫看看是不是存在了這個包了,就是這麼簡單。

2.3、使用archetype

第一種方式

任意建立一個資料夾,執行如下命令:

mvn archetype:generate -DinteractiveMode=false -DgroupId=com.whht -DartifactId=test -Dversion=1.0-SNAPSHOT -DarchetypeGroupId=com.huitu.whht.archetype-project -DarchetypeArtifactId=web-api-archetype -DarchetypeVersion=1.0-RELEASE

命令詳解:

-DgroupId=com.whht 		要建立的工程的資訊
-DartifactId=test 要建立的工程的資訊
-Dversion=1.0-SNAPSHOT 要建立的工程的資訊
-DarchetypeGroupId=com.huitu.whht.archetype-project 採用的archetype的資訊
-DarchetypeArtifactId=web-api-archetype 採用的archetype的資訊
-DarchetypeVersion=1.0-RELEASE 採用的archetype的資訊
-DinteractiveMode 互動模式,【百度一下】
第二種方式

IDEA新建maven project,選擇add archetype。

填寫生成的專案模板的gav

3、推送私服

3.1、新增server節點

修改maven目錄下conf/settings.xml檔案。

在servers節點下新增server節點

<server>
<!-- 這個ID要跟模板中pom.xml的ID一致 -->
<id>ID</id>
<username>username</username>
<password>password</password>
</server>

3.2、新增mirror節點

在mirrors節點下新增mirror

<mirror>
<id>mirrorid</id>
<name>mirror id</name>
<url>私服倉庫地址</url>
<mirrorOf>*</mirrorOf>
</mirror>

3.3、在profiles節點下新增profile節點

<profile>
<id>profileArchetype</id>
<repositories>
<repository>
<id>跟server節點ID保持一致</id>
<name>隨意</name>
<url>推送倉庫地址</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
</profile>

3.4、在pom檔案配置倉庫

<distributionManagement>
<repository>
<!--這個ID和serverid保持一致-->
<id>nexus-central</id>
<name>nexus central</name>
<url>推送地址</url>
</repository>
<!--推送到snapshot倉庫-->
<snapshotRepository>
<id>nexus-snapshot</id>
<name>nexus snapshot</name>
<url>推送地址</url>
</snapshotRepository>
</distributionManagement>

3.5、部署到私服

進入模板資料夾的根目錄target/generated-sources/archetype執行mvn install deploy就大功告成了。