Maven使用archetype生成项目

标签: | 发表时间:2017-12-21 09:13 | 作者:
出处:http://chenrongrong.info

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

通过过滤选择,可以生成一个我们需要的项目骨架,这里可以直接从命令行过滤关键字或者直接打开上述 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文件生成项目外,还有其他方式生成项目骨架:

相关 [maven archetype 项目] 推荐:

Maven使用archetype生成项目

- -
Archtype指项目的骨架, Maven中的 maven-archetype-plugin插件使用户可以方便的生成所需的项目骨架.. ###1.命令行调用maven插件. 如果不加任何参数,命令窗口显示的会有上千中项目骨架可够选择,我们可以使用 -DarchetypeCatalog, -Dfilter选择过滤项目骨架,参数赋值的格式跟JAVA设置系统属性一样 -D=.

maven导出项目依赖的jar包

- - 互联网 - ITeye博客
在进行项目部署时,需要将maven项目所依赖的jar导出到指定目录,本文讲解如何导出项目依赖的jar包. 一、导出到默认目录 targed/dependency .     从Maven项目中导出项目依赖的jar包:进入工程pom.xml 所在的目录下,执行如下命令:.        或在eclipse中,选择项目的pom.xml文件,点击右键菜单中的Run As,见下图红框中,在弹出的Configuration窗口中,输入  dependency:copy-dependencies 后,点击运行.

使用maven一步一步构建spring mvc项目

- - CSDN博客架构设计推荐文章
1      使用eclipse构建maven web项目. 1.1新建Maven的web项目. 打开菜单File –New-MavenProject. 选择模板类型archtype——maven-archtype-webapp. 输入Group Id和artifact Id. Group Id一般填入项目名称,Artifact Id一般填入子项目的名称.

Maven构建简单的多模块项目

- - 编程语言 - ITeye博客
一般web项目会进行分模块开发. 这里简单分为domain(领域层)、persist(持久层)、service(业务层)、web(交互控制层). 1、创建simple-parent,用来给各个子模块继承. 1)进入命令行,输入以下命令:. 可以看到在当前目录生成了simple-parent目录,里面有一个src目录和一个pom.xml文件.

Jenkins+Maven进行Java项目持续集成

- - CSDN博客研发管理推荐文章
最近配置了Jenkins服务器,记录下基本过程. (当然还遇到了若干小问题,兵来将挡水来土掩就是了). 从Jenkins官网下载jenkins.war文件. 官网地址:http://jenkins-ci.org/,注意选择最新版本的Long-Term Support Release. 把war文件部署到Tomcat中.

Eclipse使用Maven构建web项目详解

- - 行业应用 - ITeye博客
Maven无论在标准化项目结构,还是在jar的依赖管理上等,好处都是非常突出的. 但是使用也有些门槛,本文详细讲解了Eclipse构建Maven web项目的方法. 转自: http://www.devnote.cn/article/148.html. 测试于:m2e 1.4.0, Maven 3.0.5, Eclipse Indigo.

使用命令行快速创建Maven多模块项目

- - ITeye博客
使用命令行快速创建Maven多模块项目. auth-all:父(聚合)模块. auth-dal:数据访问模块. auth-biz:业务模块,依赖于auth-dal. auth-web:web模块,依赖于auth-biz. 1)auth-all的pom.xml. .  2)all-dal的pom.xml:.

maven学习之maven与eclipse集成

- - ITeye博客
    在上一篇博文中讲到了maven的配置,今天要讲maven与eclipse的集成. 现在在java开发中,eclipse占据了绝大部分的市场份额. 其他的关于NetBeans,IDEA中的关于maven的配置,读者可参阅相关资料. (注:关于IDEA,据说是款非常强大的集成开发环境,但是据说对svn的支持不是很好,道听途说而已).

构建archetype发布到私服 - ronaldo918 - 博客园

- -
由于项目需要,想自己建立骨架,便于大家在同一个骨架下开发,便决定自己写骨架并发布到maven仓库,写好后网上查了好多都发布不成功,反复多次终于成功,总结两个原因. 1.pom文件的distributionManagement节点下的releases和snapshots节点id一定要和.m2/setting.xml中的server节点的id一样.

maven工程下整合spring+mybatis+freemarker

- - CSDN博客架构设计推荐文章
博客地址:http://zhengyinhui.com/?p=142. 由于工作主要是前端开发,做后端的项目比较少,最近自己做个项目,发觉好多的都忘了,这里写篇博客整理下maven工程下整合spring+mybatis+freemarker相关内容. 新建个Archetype为maven-archetype-webapp的maven项目(安装maven插件:http://download.eclipse.org/technology/m2e/releases),在pom文件添加相关依赖:.