Maven使用archetype生成项目

Archtype指项目的骨架, Maven中的 maven-archetype-plugin插件使用户可以方便的生成所需的项目骨架.

###1.命令行调用maven插件

   mvn archetype:generate 

如果不加任何参数,命令窗口显示的会有上千中项目骨架可够选择,我们可以使用 -DarchetypeCatalog, -Dfilter选择过滤项目骨架,参数赋值的格式跟JAVA设置系统属性一样 -D=

##### -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

通过过滤选择,可以生成一个我们需要的项目骨架,这里可以直接从命令行过滤关键字或者直接打开上述 remoteurl中的 archetype-catalog.xml文件中查找。最近刚好在看 webx框架,而且该框架也有 archetype-webx-quickstart,那么可以从命令行生成该项目的一个例子:

   [email protected]:~/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

MavenArchetype Plugin除了提供上述使用 archetype-catalog.xml文件生成项目外,还有其他方式生成项目骨架:

  • Generate projects in batch mode
  • Create an archetype from a multi-module project
  • Create an archetype with a property file

你可能感兴趣的:(Maven使用archetype生成项目)