其他

Maven Archetype 模板开发详解

2017-06-05 OSC-蛙牛 开源中国


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


背景


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

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


Archetype 介绍


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

官方文档:


Archetype 使用


IDEA中创建

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

创建项目

  • 输入命令后,Archetype插件会输出一个Archetype列表供用户选择;选择自己想要使用的Archetype,输入对应编号

  • 提示输入一些基本参数,如groupId,artifactId,version,package等

  • Archetype插件生成项目骨架

过滤器方式创建

批处理方式创建 

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

参数列表:

常用的 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文件


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文件

官方介绍:

例子:

本地仓库中生成的archetype模板

使用自定义模板

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

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

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

添加到 IDEA

添加自定义属性参数


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中



推荐阅读

Node.js 发布 v8.0.0 正式版;Qt 5.9 正式发布,长期支持版本

Java 9 又要延期?微软为中国政府定制的 Win 10 操作系统来了

6 月全球数据库排名,MySQL 直逼 Oracle | DB-Engines 排行榜

GO :互联网时代的 C 语言!| 码云周刊

“放码过来”邀您亮“项”,一不小心就火了!

点击“阅读原文”查看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存