基本上每个公司的项目都有一套模板。 只要打开一个新项目,复制一份包名和一些配置就可以初始化一个新项目了。 这种方法有点复杂,无法通过命令甚至可视化方式从模板项目初始化项目。 尽管 Maven 提供了这些功能,但这是一个基于原型的生成项目。
集成项目模板插件
首先,需要在模板项目中集成Maven archetype插件:
org.apache.maven.pluginsmaven-archetype-plugin3.2.0
从项目生成模板
从项目生成模板只需三个步骤。
生成模板原型文件
Maven 插件允许我们从现有项目生成模板项目。 在项目根目录下执行 mvn archetype:create-from-project 命令,为项目生成项目模板,生成的项目原型保存在路径 target/ generated-sources/archetype 中。
但这有一个问题。 一些与项目模板源代码无关的文件也会被添加到模板中maven网站模板,比如IDEA中的.iml文件以及.idea目录下的文件。 生成模板时需要忽略这些“垃圾”文件。
maven-archetype-plugin提供了一个属性配置可以帮助我们实现这个能力。 在原始项目的根目录(或您喜欢的任何其他目录)中写入 .properties 文件:
# 原型的坐标 必须声明
archetype.groupId=cn.felord
# 最好按照约定以-archetype结尾
archetype.artifactId=template-archetype
archetype.version=1.0
# 需要忽略的文件夹和文件类型 英文逗号隔开
excludePatterns=**/.idea/**,**/*.iml
这时需要指定配置文件来执行生成的命令:
mvn archetype:create-from-project -Darchetype.properties=./archetype.properties
注:路径为配置文件与根目录的相对路径。
生成的原型会忽略这些无用的文件。 细心的同学会发现生成的prototype中pom.xml的坐标变成了:
cn.felord
template-archetype
1.0
maven-archetypetemplate-archetype
安装生成的原型
我们需要在target/ generated-sources/archetype下执行mvn install
本地安装原型库
在我们本地的maven仓库目录(通常是~/.m2)中,当前的原型将被注册在archetype-catalog.xml中:
cn.felordtemplate-archetype1.0spring security learning demo
后续使用时Maven会从这里检索我们本地的模板。
从原型生成项目
接下来验证一下效果。 要从本地原型生成项目maven网站模板,您需要执行:
mvn archetype:generate -DarchetypeCatalog=local
创建项目的步骤在这里
然后一个新项目诞生了。