maven archetype模板,为应用快速建立应用提供巨大的帮助。
可以通过程序的模板来创建新的应用,比如 quick start archetype.
使用archetype(交互式输入参数来创建项目,如果使用非交互式,需要加上-B选项,并带上必要参数,执行下列命令:
mvn -B archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DgroupId=com.mycompany.app \
-DartifactId=my-app
):
mvn archetype:generate
以上是常用的项目模板:
Archetype ArtifactIds描述
maven-archetype-archetypeAn archetype to generate a sample archetype project.
maven-archetype-j2ee-simpleAn archetype to generate a simplifed sample J2EE application.
maven-archetype-mojoAn archetype to generate a sample a sample Maven plugin.
maven-archetype-pluginAn archetype to generate a sample Maven plugin.
maven-archetype-plugin-siteAn archetype to generate a sample Maven plugin site.
maven-archetype-portletAn archetype to generate a sample JSR-268 Portlet.
maven-archetype-quickstartAn archetype to generate a sample Maven project.
maven-archetype-simpleAn archetype to generate a simple Maven project.
maven-archetype-siteAn archetype to generate a sample Maven site which
demonstrates some of the supported document types like APT, XDoc, and
FML and demonstrates how to i18n your site.
maven-archetype-site-simpleAn archetype to generate a sample Maven site.
maven-archetype-webappAn archetype to generate a sample Maven Webapp project.
自定义项目模板
一个原型就是一个非常简单的模块,具有以下部分组成
1. archetype descriptor(src/main/resources/META-INF/maven/archetype.xml): 列出项目中所有包含的文件。
2. 原型文件会被拷贝到archetype插件当中(src/main/resources/archetype-resources/)
3. 原型pom.xml(src/main/resources/archetype-resources)
4. 用于原型的pom.xml(原型根目录下)
创建步骤:
1. 创建一个新的工程和pom.xml用于原型模块,pom.xml必要属性 groupId、artifactId、version(mvn archetype:generate)
2. 创建原型描述文档(archetype descriptor)是一个archetype.xml文档。位置在 src/main/resources/META-INF/maven/ 示例:
<archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd">
<!-- archetypeId -->
<id>quickstart</id>
<!-- 是否可以在已经存在的项目当中执行archetype:generate -->
<allowPartial>true</allowPartial>
<!--
<sources>,<resources>,<testSources>,<testResources>和<siteResources>
代表着不同项目不同的部分,<sources>和<testSources>定义包含的源文件
<testResources>和<siteResources>定义资源文件。
放置其它资源文件则通过resources标签
-->
<sources>
<source>src/main/java/App.java</source>
</sources>
<testSources>
<source>src/test/java/AppTest.java</source>
</testSources>
</archetype>
此时项目目录结构应当是这样的。
archetype
|-- pom.xml
`-- src
`-- main
`-- resources
|-- META-INF
| `-- maven
| `--archetype.xml
`-- archetype-resources
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- App.java
`-- test
`-- java
`-- AppTest.java
3. 步骤3:创建原型pom.xml(src/main/resources/archetype-resources),通过命令行变量来替换关键信息
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<packaging>jar</packaging>
<name>A custom project</name>
<url>http://www.myorganization.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
4. mvn install 安装到本地仓库当中即可
5. 使用刚刚创建的archetype artifact来创建新的maven项目
mvn archetype:generate \
-DarchetypeGroupId=<archetype-groupId> \
-DarchetypeArtifactId=<archetype-artifactId> \
-DarchetypeVersion=<archetype-version> \
-DgroupId=<my.groupid> \
-DartifactId=<my-artifactId>
示例项目demo git地址:
https://github.com/wk1034832478/myarchetype-demo/tree/master/src/main/resources/archetype-resources
.