文档章节

Maven Archetype模板开发

蛙牛
 蛙牛
发布于 2017/05/31 20:11
字数 968
阅读 1777
收藏 65

0.背景

在Idea中创建Springmvc项目,之前是maven结构的,在后来的版本中,创建出来的是非maven结构的,在做一些demo测试的时候,十分不方便。

在日常开发中,我们需要新建项目时,如果完全手动搭建,耗时耗力。公司部门内部可以维护一套符合自己业务场景和规范的模板,就可以根据项目模板快速去创建项目,节省工作量,避免出现错误。

1.Archetype介绍

Archetype是一个Maven项目的模板工具包,它定义了一类项目的基本架构。Archetype为开发人员提供了创建Maven项目的模板,同时它也可以根据已有的Maven项目生成参数化的模板。通过Archetype,开发人员可以很方便地将一类项目的最佳实现应用到自己的项目中。在一个Maven项目中,开发者可以通过Archetype提供的范例快速入门并了解该项目的结构与特点

官方文档:https://maven.apache.org/archetype/index.html

2.Archetype使用

IDEA中创建

在IDEA中,我们可以通过New Project – Maven – Create from archetype,选择某个archetype快速创建模板项目

创建项目

mvn archetype:generate
  • 输入命令后,Archetype插件会输出一个Archetype列表供用户选择;选择自己想要使用的Archetype,输入对应编号
  • 提示输入一些基本参数,如groupId,artifactId,version,package等
  • Archetype插件生成项目骨架

过滤器方式创建

mvn archetype:generate -Dfilter=maven-archetype-quickstart

批处理方式创建 

mvn archetype:generate \
        -DarchetypeGroupId=pl.codeleak \
        -DarchetypeArtifactId=spring-mvc-quickstart \
        -DarchetypeVersion=1.0.0 \
        -DgroupId=my.groupid \
        -DartifactId=my-artifactId \
        -Dversion=version \
        -DarchetypeRepository=http://kolorobot.github.io/spring-mvc-quickstart-archetype

GitHub中可以搜索某个项目的archetype,使用批处理方式直接构建模板项目

参数列表:https://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html

常用的archetype

maven-archetype-quickstart

默认的Archetype,基本内容包括: 

  • 一个包含junit依赖声明的pom.xml
  • src/main/java主代码目录及一个名为App的类
  • src/test/java测试代码目录及一个名为AppTest的测试用例

maven-archetype-webapp

一个最简单的Maven war项目模板,当需要快速创建一个Web应用的时候可以使用它。生成的项目内容包括:

  • 一个packaging为war且带有junit依赖声明的pom.xml
  • src/main/webapp/目录
  • src/main/webapp/index.jsp文件
  • src/main/webapp/WEB-INF/web.xml文件

3.Archetype开发

创建自定义模板

1.在maven项目下,执行mvn archetype:create-from-project,在target/generated-sources/archetype目录下生成Archetype project
2.cd target/generated-sources/archetype后,mvn install安装archetype project到本地仓库

ps:如果是maven多模块项目,在根目录下执行mvn archetype:create-from-project

mvn install后,会在本地的maven仓库,按照maven坐标创建对应的archetype文件

官方介绍:https://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html

例子:

本地仓库中生成的archetype模板

使用自定义模板

1.在当前的目录下,mvn archetype:generate -DarchetypeCatalog=local,查看本地archetype列表

2.choose number,按步骤输入基本参数groupId/artifactId/version/package

3.在当前目录下,以artifactId为目录创建一个新的项目

添加到IDEA

添加自定义属性参数

4.Archetype配置

mvn archetype:generate -DarchetypeCatalog=local

对应的本地archetype列表,在本地maven仓库的archetype-catalog.xml中 ,比如: ~/.m2/repository/archetype-catalog.xml

IDEA中的archtype配置,在 ~/Library/Caches/IntelliJIdea2017.1/Maven/Indices/UserArchetypes.xml中

© 著作权归作者所有

共有 人打赏支持
蛙牛

蛙牛

粉丝 529
博文 46
码字总数 48937
作品 1
朝阳
程序员
私信 提问
加载中

评论(4)

猫扑风铃
猫扑风铃
nice
吴佩在
吴佩在
不错
Miyako
Miyako
mark
Miyako
Miyako
msrk
Maven中的archetype快速搭建一个代码开发架构 Spring-MVC

我们知道,Maven是一个非常好的编译和配置管理工具;大家平常用的最多的估计是用maven来运行自动化测试,自动化管理项目的依赖,编译jar文件或者eclipse插件等等。但是其实Maven中有一个非常...

chancein007
2016/12/26
0
0
eclipse 创建 maven 项目

Archetype 原型 可以讲Archetype理解成Maven项目的模板,例如maven-archetype-quickstart就是最简单的Maven项目模板,只需提供基本的元素,如groupId,artifactId,version等,它就能生成项目的...

sannywang
2016/09/26
2
0
Maven 自定义archeType

1. 什么是archeType 我们在创建maven项目的时候,你会发现有这么多的apache提供的模板。 或者使用 命令来快速创建maven项目,也会有很多个选项,让你选择模板序号。那每个模板之间有什么区别...

微笑面对life
2018/12/11
0
0
Maven插件之maven-archetype-plugin

学过Maven的人,都知道用MyEclipse的Maven插件生成一个项目骨架,比如maven-archetype-quickstart,这个原型就是最常用的之一。 刚开始使用骨架的时候,感觉很好,减少了重复劳动,提高了开发...

fastjrun
2016/03/26
103
0
使用IntelliJ IDEA 12创建Maven多模块项目

使用Maven管理项目时,往往需要创建多个模块,模块之间存在相互引用的关系。对于Maven的依赖,也需要专门创建一个模块来管理依赖项。例如对于一个项目,可以创建一个config模块来管理Maven依...

指尖的舞者
2015/09/21
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

弹窗时候禁止页面滚动

1、依靠css 将页面 document.documentElement.style.overflow='hidden'; document.body.style.overflow='hidden';//手机版设置这个。 如果设置了如上,页面的滚动条将会消失,此时鼠标滚轮失......

Jack088
19分钟前
4
0
.NET的数学库NMath实用教程——创建最小二乘法

NMath是一个适用于所有.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。我们将以连载的形式向大家介绍NMath的实用教程,有任何建议或提示...

ymy_666666
19分钟前
1
0
索尼为收购工作室准备,对抗微软?

对比来说,索尼方面不但没有增加新的工作室,反而在过去两年内关闭了一些工作室。面对微软的步步紧逼,索尼最新的招聘广告暗示将来有可能会收购一些工作室。 在领英上,索尼互动娱乐发布了两...

linuxCool
19分钟前
1
0
公司网站有漏洞被入侵该怎么解决

2019年1月14日消息,thinkphp又被爆出致命漏洞,可以直接远程代码执行,getshell提权写入网站木马到网站根目录,甚至直接提权到服务器,该漏洞影响版本ThinkPHP 5.0、ThinkPHP 5.0.10、Think...

网站安全
31分钟前
2
0
centos7 Nginx+rtmp 搭建流媒体服务器

一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum -y install gcc gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Compatib...

legend3
49分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部