Maven使用archetype生成项目
  Archtype指项目的骨架,  Maven中的  maven-archetype-plugin插件使用户可以方便的生成所需的项目骨架.
###1.命令行调用maven插件
   mvn archetype:generate 
如果不加任何参数,命令窗口显示的会有上千中项目骨架可够选择,我们可以使用  -DarchetypeCatalog,  -Dfilter选择过滤项目骨架,参数赋值的格式跟JAVA设置系统属性一样  -D<name>=<value>
#####  -DarchetypeCatalog参数:
archetypeCatalog参数指定使用的catalog.xml文件,默认值是
remote,local,上述命令等同于mvn archetype:generate -DarchetypeCatalog=remote,local
- internal:使用插件内部的文件.
- local :使用本地的文件,默认路径是
.m2/archetype-catalog.xml.- remote :使用远程的文件,默认路径是
http://repo1.maven.org/maven2/archetype-catalog.xml.- file://path/to/archetype-catalog.xml :使用本地指定路径的文件.
- http://url/to/archetype-catalog.xml :使用远程路径的文件.
#####  -Dfilter参数:
filter过滤选择对应的骨架,格式:
[groupId:]artifactId,其中groupId是可选,e.g-Dfilter=mvc表示过滤artifactId包含mvc关键字的项目骨架,如果有groupId,-Dfilter=org.apache:struts
通过过滤选择,可以生成一个我们需要的项目骨架,这里可以直接从命令行过滤关键字或者直接打开上述  remote的  url中的  archetype-catalog.xml文件中查找。最近刚好在看  webx框架,而且该框架也有  archetype-webx-quickstart,那么可以从命令行生成该项目的一个例子:
   root@ubuntu:~/gitspace/maven-demo$ mvn archetype:generate -Dfilter=webx
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.3:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:2.3:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:2.3:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> com.alibaba.citrus.sample:archetype-webx-quickstart (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1
Choose com.alibaba.citrus.sample:archetype-webx-quickstart version: 
1: 1.0
2: 1.1
3: 1.2
4: 1.3
5: 1.4
6: 1.5
7: 1.6
8: 1.7
9: 1.8
Choose a number: 9: 9
###2.配置  maven项目信息
选择好项目骨架后,命令行会提示让我们一步步输入  maven项目信息
   Define value for property 'groupId': : info.chenrongrong
Define value for property 'artifactId': : dailyjava
Define value for property 'version':  1.0-SNAPSHOT: : \\按回车默认是1.0-SNAPSHOT
Define value for property 'package':  info.chenrongrong: : \\按回车默认
[INFO] Using property: spring-version = 3.2.7.RELEASE
[INFO] Using property: webx-version = 3.2.4
Confirm properties configuration:
groupId: info.chenrongrong
artifactId: dailyjava
version: 1.0-SNAPSHOT
package: info.chenrongrong
spring-version: 3.2.7.RELEASE
webx-version: 3.2.4
 Y: : \\按回车确认
###3.生成  maven项目
项目参数配置好后,便可以生成  webx的项目骨架,用  tree命令可以查看生成的项目的目录结构:
   dailyjava/
├── pom.xml
└── src
    └── main
        ├── java
        │   └── info
        │       └── chenrongrong
        │           └── app1
        │               ├── module
        │               │   ├── action
        │               │   │   └── RegisterAction.java
        │               │   └── screen
        │               │       ├── form
        │               │       │   └── Welcome.java
        │               │       ├── list
        │               │       │   └── Default.java
        │               │       ├── multievent
        │               │       │   ├── SayHello1.java
        │               │       │   └── SayHello2.java
        │               │       └── simple
        │               │           ├── Count.java
        │               │           ├── Download.java
        │               │           ├── SayHiImage.java
        │               │           └── SayHi.java
        │               └── Visitor.java
        └── webapp
            ├── app1
            │   └── templates
            │       ├── layout
            │       │   └── default.vm
            │       └── screen
            │           ├── form
            │           │   ├── register.vm
            │           │   └── welcome.vm
            │           ├── index.vm
            │           └── list
            │               ├── asHtml.vm
            │               ├── asJson.vm
            │               └── asXml.vm
            ├── common
            │   └── templates
            │       ├── layout
            │       │   └── default.vm
            │       ├── macros.vm
            │       └── screen
            │           └── error.vm
            └── WEB-INF
                ├── app1
                │   └── form.xml
                ├── common
                │   ├── pipeline-exception.xml
                │   ├── pipeline.xml
                │   ├── resources.xml
                │   ├── uris.xml
                │   ├── webx-component-and-root.xml
                │   └── webx-component.xml
                ├── logback.xml
                ├── webx-app1.xml
                ├── web.xml
                └── webx.xml
  Maven的  Archetype Plugin除了提供上述使用  archetype-catalog.xml文件生成项目外,还有其他方式生成项目骨架: