前言:
在使用IDEA的Maven插件创建我们的maven项目时提供了如图所示的原型,为我们快速创建合适的项目提供了很大的帮助。下面我们将详细介绍各个archetype。
官网对archetype(原型)的介绍:
http://maven.apache.org/guides/introduction/introduction-to-archetypes.html
什么是archetype?
简言之,prototype是一个Maven项目模板工具包。原型被定义为一个原始的模式或模型,所有其他同类的东西都是由它构成的。使用原型提供了一种很好的方法,可以使开发人员以与项目或组织所采用的最佳实践一致的方式快速开发。
Maven的archetype有哪些?
下面简单介绍Maven提供的原型
Archetype ArtifactIds | Description |
---|---|
maven-archetype-archetype | 生成示例原型项目的原型。 |
maven-archetype-j2ee-simple | 生成简化示例J2EE应用程序的原型。 |
maven-archetype-mojo | 生成示例的原型(示例Maven插件)。 |
maven-archetype-plugin | 生成示例Maven插件的原型。 |
maven-archetype-plugin-site | 生成示例Maven插件站点的原型。 |
maven-archetype-portlet | 生成示例的原型JSR-268组件。 |
maven-archetype-quickstart | 生成示例Maven项目的原型。 |
maven-archetype-simple | 生成简单Maven项目的原型。 |
maven-archetype-site | 生成示例Maven站点的原型,该示例Maven站点演示了一些受支持的文档类型,如APT、XDoc和FML,并演示了如何i18n您的站点。 |
maven-archetype-site-simple | 生成示例Maven站点的原型 |
maven-archetype-webapp | 生成示例Maven Webapp项目的原型。 |
命令行的使用:见官方说明:
http://maven.apache.org/archetype/maven-archetype-plugin/usage.html
创建的原型的结构图及使用命令
maven-archetype-archetype:
project
|-- pom.xml
`-- src|-- main| `-- resources| |-- archetype-resources| | |-- pom.xml| | `-- src| | |-- main| | | `-- java| | | `-- App.java| | `-- test| | `-- java| | `-- AppTest.java| `-- META-INF| `-- maven| `-- archetype-metadata.xml`-- test`-- resources`-- projects`-- it-basic|-- archetype.properties`-- goal.txt
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-archetype -DarchetypeVersion=1.4
maven-archetype-j2ee-simple:
project
|-- pom.xml
|-- ear
| |-- pom.xml
| `-- src
| |-- main
| | `-- java
| `-- test
| `-- java
|-- ejbs
| |-- pom.xml
| `-- src
| |-- main
| | |-- java
| | `-- resources
| | `-- META-INF
| | `-- ejb-jar.xml
| `-- test
| `-- java
|-- primary-source
| |-- pom.xml
| `-- src
| |-- main
| | `-- java
| `-- test
| `-- java
|-- projects
| |-- pom.xml
| `-- logging
| |-- pom.xml
| `-- src
| |-- main
| | `-- java
| `-- test
| `-- java
`-- servlets|-- pom.xml`-- servlet|-- pom.xml`-- src|-- main| `-- java|-- webapp| |-- WEB-INF| | `-- web.xml| `-- index.jsp`-- test`-- java
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-j2ee-simple -DarchetypeVersion=1.4
maven-archetype-plugin
project
|-- pom.xml
`-- src|-- main| `-- java| `-- $package| `-- MyMojo.java|-- test| |-- java| | `-- $package| │ `-- MyMojoTest.java| `-- resources| `-- project-to-test| `-- pom.xml`-- it|-- simple-it| |-- pom.xml| `-- verify.groovy`-- settings.xml
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-plugin -DarchetypeVersion=1.4
Maven Plugin Site Archetype:
project
|-- pom.xml
`-- src`-- site|-- apt| |-- examples| | `-- example.apt| |-- index.apt| `-- usage.apt|-- markdown| |-- markdown.md| `-- markdown-velocity.md.vm`-- site.xml
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-plugin-site -DarchetypeVersion=1.4
maven-archetype-portlet
project
|-- pom.xml
`-- src`-- main|-- java| `-- $package| `-- MyPortlet.java|-- jetspeed| `-- web.xml`-- webapp|-- WEB-INF| |-- tld| | `-- portlet.tld| |-- portlet.xml| `-- web.xml|-- help.jsp|-- maximized.jsp`-- normal.jsp
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-portlet -DarchetypeVersion=1.4
maven-archetype-quickstart
project
|-- pom.xml
`-- src|-- main| `-- java| `-- $package| `-- App.java`-- test`-- java`-- $package`-- AppTest.java
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4
maven-archetype-simple
project
|-- pom.xml
`-- src|-- main| `-- java| `-- $package| `-- App.java|-- site| `-- site.xml`-- test`-- java`-- $package`-- AppTest.java
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-simple -DarchetypeVersion=1.4
maven-archetype-site
project
|-- pom.xml
`-- src`-- site|-- apt| |-- format.apt| `-- index.apt|-- fml| `-- faq.fml|-- fr| |-- apt| | |-- format.apt| | `-- index.apt| |-- fml| | `-- faq.fml| |-- markdown| | |-- markdown.md| | `-- markdown-velocity.md.vm| `-- xdoc| `-- xdoc.xml|-- markdown| |-- markdown.md| `-- markdown-velocity.md.vm|-- xdoc| `-- xdoc.xml|-- site_fr.xml`-- site.xml
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-site -DarchetypeVersion=1.4
maven-archetype-site-simple
project
|-- pom.xml
`-- src`-- site|-- apt| `-- index.apt|-- markdown| |-- markdown-velocity.md.vm| `-- markdown.md`-- site.xml
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-site-simple -DarchetypeVersion=1.4
maven-archetype-site-skin
project
|-- pom.xml
`-- src|-- main| `-- resources| `-- META-INF| |-- css| | |-- maven-base.css| | |-- maven-theme.css| | `-- print.css| |-- images| | |-- external.png| | |-- icon_error_sml.gif| | |-- icon_info_sml.gif| | |-- icon_success_sml.gif| | |-- icon_warning_sml.gif| | `-- newwindow.png| `-- maven| |-- site.vm| |-- site-macros.vm| `-- skin.xml`-- it|-- settings.xml`-- sample|-- pom.xml`-- verify.groovy`-- src`-- site|-- site.xml`-- apt`-- index.apt.vm
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-site-skin -DarchetypeVersion=1.4
maven-archetype-webapp
project
|-- pom.xml
`-- src`-- main`-- webapp|-- WEB-INF| `-- web.xml`-- index.jsp
命令创建方式:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4