maven-archetype-plugin

参考: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

1.1、archetype:generate

生成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/javasrc/test/java是不能改动的,不然Maven会无法找到源文件。 下面是Maven一个标准的目录结构:

目录说明
src/main/javaApplication/Library sources
src/main/resourcesApplication/Library resources
src/main/filtersResource filter files
src/main/assemblyAssembly descriptors
src/main/configConfiguration files
src/main/scriptsApplication/Library scripts
src/main/webappWeb application sources
src/test/javaTest sources
src/test/resourcesTest resources
src/test/filtersTest resource filter files
src/siteSite
1.2、archetype:create-from-project

1.3、archetype:crawl