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
就大功告成了。