前面講過通過Maven原型maven-archetype-archetype來創(chuàng)建自定義Archetype的方法,但是這種方法似乎不太方便驗證文件的正確性,這里將使用maven-archetype-plugin插件的create-from-project目標來從一個project中創(chuàng)建archetype
10年積累的網(wǎng)站設(shè)計制作、網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有松嶺免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
mvn archetype:generate -DgroupId=com.ultrapower.archetypes -DartifactId=ultra-template-archetype -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0 -DinteractiveMode=false
其中關(guān)于添加相關(guān)的依賴等這里忽略
mvn archetype:create-from-project
通過該命令,會在target目錄下面生成generated-sources/archetype目錄,這個就是生成的 archetype。 (同時,generated-sources\archetype\src\main\resources\META-INF\maven下的文件archetype-metadata.xml可能需要調(diào)整)
先來看看archetype下的pom.xml都包含些什么內(nèi)容
4.0.0
com.ultrapower.archetypes
ultra-template-archetype-archetype
1.0
maven-archetype
ultra-template-archetype-archetype
org.apache.maven.archetype
archetype-packaging
3.0.1
maven-archetype-plugin
3.0.1
Parent pom providing dependency and plugin management for applications
built with Maven
http://maven.apache.org
Pivotal
info@pivotal.io
Pivotal Software, Inc.
http://www.spring.io
Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0
https://github.com/spring-projects/spring-boot/spring-boot-starter-parent/ultra-template-archetype
我們再打開archetype-metadata.xml文件看看里面的內(nèi)容,并做可能的必要修改【可能默認包含了些你不需要的文件】
src/main/java
**/*.java
**/*.xml
src/main/resources
**/*.xml
**/*.html
src/main/resources
**/*.yml
src/test/java
**/*.java
lib
**/*.jar
boot
**/*.bat
**/*.sh
.settings
**/*.prefs
.classpath
.project
將最后的兩項去掉即可滿足需要了
.settings
**/*.prefs
.classpath
.project
在此簡單說下幾個屬性的含義(完整的說明參考官網(wǎng)archetype-metadata.xml詳解)
1)filtered :被選擇的文件是否當做 Velocity 模板來使用(如果是true則可以使用Velocity的表達式,例如用于動態(tài)設(shè)置包名等)
2)packaged:被拷貝或生成(通過Velocity生成)的文件是否在package屬性預(yù)先設(shè)置的目錄結(jié)構(gòu)下進行存放
3)encoding:設(shè)置文件的字符編碼
mvn install
通過以上操作便會將自定義的archetype安裝到maven倉庫中,同時會在倉庫根目錄下的archetype-catalog.xml文件中添加自定義archetype的信息(沒有會自動創(chuàng)建該文件)
mvn archetype:generate -DarchetypeGroupId=com.ultrapower.archetypes -DarchetypeArtifactId=ultra-template-archetype-archetype -DarchetypeVersion=1.0 -DgroupId=com.ultrapower.ioss -DartifactId=ultra-template-archetype-test -X
至此,一個新的project便生成
重要:對于某些java和文本文件里面的配置可能需要動態(tài)修改,所以需要手動的調(diào)整archetype下的文件,在此不再贅述
在安裝完成后,在本地倉庫的根路徑下會生成一個文件“archetype-catalog.xml”,里面便記錄了自定義骨架的坐標,例如:
com.ultrapower.archetypes
ultra-template-archetype-archetype
1.0
Parent pom providing dependency and plugin management for applications
built with Maven