常用的Archetype
macen-archetype-quickstart
macen-archetype-webapp
编写Archetype
自定义archetype关键目录
pox.xml
Archetype自身的pox.xmlsrc/main/resources/archetype-resources/pom.xml
基于该Archetyoe生成的项目的POM原形src/main/resources/META-INF/maven/archetype-metadata.xml
Archetype的描述文件src/mian/resources/archetype-resources/**
其他需要包含在Archetype中的内容
一个简单的Archetype
[图片上传失败...(image-c556f9-1545899546093)]
-
pom.xml
4.0.0 com.vczyh.archetypes archetype-test 1.0-SHAPSHOT jar -
src/main/resources/archetype-resources/pom.xml
4.0.0 ${groupId} ${artifactId} ${version} war UTF-8 1.8 1.8 junit junit 4.11 test ${artifactId} -
src/main/resources/META-INF/maven/archetype-metadata.xml
-
根目录运行,项目会安装到本地仓库,至此,一个简单的Archetype已经完成了
mvn clean install
-
使用Archetype,
groupId
,artifactId
,version
对应上面的pom.xmlmvn archetype:generate -DarchetypeGroupId="com.vczyh.archetypes" -DarchetypeArtifactId="archetype-test" -DarchetypeVersion="1.0-SHAPSHOT"
[图片上传失败...(image-ac65b9-1545899546093)]
生成的项目只有一个
pom.xml
,但也是一个Archetype
完善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
已经变成输入的值
生成本地仓库的Archetype Catalog
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)]
如果需要额外的参数,需要在这里添加,比如示例中的port
,否则创建失败