参考:http://maven.apache.org/plugins/maven-archetype-plugin
Archetype
指项目的骨架或者模板,Maven
初学者最开始执行的Maven
命令可能就是mvn archetype:generate
, 这实际上就是让maven-archetype-plugin
生成一个很简单的项目骨架,帮助开发者快速上手。 可能也有人看到一些文档写了mvn archetype:create
, 但实际上create
目标已经被弃用了,取而代之的是generate
目标, 该目标使用交互式的方式提示用户输入必要的信息以创建项目,体验更好。
maven-archetype-plugin
还有一些其他目标帮助用户自己定义项目原型, 例如你由一个产品需要交付给很多客户进行二次开发,你就可以为他们提供一个Archetype
,帮助他们快速上手。
这个插件包含下面这些goals
:
生成Maven
工程。
这个目标可以在任何没有pom.xml
的地方执行,因为这个目标就是用来创建工程的,连工程都没有,哪来的pom.xml
。
示例1:
mvn archetype:generate
不带任何参数,执行这个插件的generate
目标,由于没有指定任何参数,所以进入交互模式,提示用户选择或者输入。
关于模板的选择。大约有1500
多个模板,这么多的模板都编了号,要求您输入选择的编号。 一次性选择一个模板是很困难的,所以它还支持你输入关键字进行过滤。如果发现您输入的不是数字,那么就当作过滤的关键字。可以多次过滤, 直到找到您想要的模板。输入它的编号即可。
示例2:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.fpliu.xx -DartifactId=xx_for_maven
带上了全部的参数,就不进入交互模式了,只是如果是第一次运行,这个过程会有点慢,Maven
需要下载一些依赖,中间如果有输入提示信息, 直接回车使用默认值就可以了。这条命令执行完后,会在你的当前目录下生成一个名为xx_for_maven
的目录:
注意这个目录结构,src/main/java
和src/test/java
是不能改动的,不然Maven
会无法找到源文件。 下面是Maven
一个标准的目录结构:
目录 | 说明 |
---|---|
src/main/java | Application/Library sources |
src/main/resources | Application/Library resources |
src/main/filters | Resource filter files |
src/main/assembly | Assembly descriptors |
src/main/config | Configuration files |
src/main/scripts | Application/Library scripts |
src/main/webapp | Web application sources |
src/test/java | Test sources |
src/test/resources | Test resources |
src/test/filters | Test resource filter files |
src/site | Site |