自定义Maven模板(Archetype)
常用的Archetype
- macen-archetype-quickstart
- macen-archetype-webapp
pox.xml
Archetype自身的pox.xml
src/main/resources/archetype-resources/pom.xml
基于该Archetyoe生成的项目的POM原形
src/main/resources/META-INF/maven/archetype-metadata.xml
Archetype的描述文件
src/mian/resources/archetype-resources/**
其他需要包含在Archetype中的内容
-
pom.xml
4.0.0 com.vczyh.archetypes archetype-test1.0-SHAPSHOT jar
-
src/main/resources/archetype-resources/pom.xml
4.0.0 ${groupId} ${artifactId}${version} warUTF-81.8 1.8 junit junit4.11 test${artifactId}
-
src/main/resources/META-INF/maven/archetype-metadata.xml
- 根目录运行,项目会安装到本地仓库,至此,一个简单的Archetype已经完成了
mvn clean install
- 使用Archetype,
groupId
,artifactId
,version
对应上面的pom.xml
mvn archetype:generate -DarchetypeGroupId="com.vczyh.archetypes" -DarchetypeArtifactId="archetype-test" -DarchetypeVersion="1.0-SHAPSHOT"
[图片上传失败...(image-ac65b9-1545899546093)]
生成的项目只有一个pom.xml
,但也是一个Archetype
- 通过修改
src/main/resources/archetype-resources/pom.xml
可以添加默认依赖以及其他信息
- 添加
src/main/java
src/main/resources
src/test/java
src/main/resources/application.properties
[图片上传失败...(image-93da3d-1545899546093)]
//App.java package ${package}; public class App { public static void main(String[] args) { System.out.println("Hello World!"); } }
# application.properties # 使用${port}可以获取使用archetype时输入的参数port的值 port=${port}
- 新建Archetype默认不会包含上面的目录,因此得修改
src/main/resources/META-INF/maven/archetype-metadata.xml
src/main/java **/*.java src/main/resources src/test/java **/*.java com.vczyh
- 使用archetype创建项目
[图片上传失败...(image-4ed378-1545899546093)]
注意application.properties
中的port
已经变成输入的值
mvn archetype:crawl
会扫描本地仓库,并且在
${user}/.m2/repository
生成archetype-catalog.xml
,包含了遍历到的本地archetype,其中包含刚刚自定义的com.vczyh.archetypes
archetype-test
1.0-SHAPSHOT
test org.apache.maven.archetypes
maven-archetype-quickstart
1.3
quickstart org.apache.maven.archetypes
maven-archetype-quickstart
1.4
quickstart org.apache.maven.archetypes
maven-archetype-webapp
1.4
webapp
添加到Catalog的方便之处在于不用每次使用archetype时写一长串命令
mvn archetype:generate
[图片上传失败...(image-92b24e-1545899546093)]
选择archetype的编号,比如这里的11即可
Idea使用Archetype [图片上传失败...(image-32ce0d-1545899546093)]
添加完成后使用
[图片上传失败...(image-827d7e-1545899546093)]
【自定义Maven模板(Archetype)】如果需要额外的参数,需要在这里添加,比如示例中的
port
,否则创建失败示例代码
推荐阅读
- SpringBoot调用公共模块的自定义注解失效的解决
- opencv|opencv C++模板匹配的简单实现
- python自定义封装带颜色的logging模块
- 列出所有自定义的function和view
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- 自定义MyAdapter
- Android自定义view实现圆环进度条效果
- 通过复盘快速成长(附模板)
- maven使用tomcat7插件编译jsp出错