maven使用archetype插件创建自定义项目模板

通常情况下我们新建maven工程会选择webapp模板来创建新项目


maven使用archetype插件创建自定义项目模板_第1张图片
图1

但是创建后的项目只有个web-info目录,目录结构不是很完整


maven使用archetype插件创建自定义项目模板_第2张图片
图2

通过使用maven-archetype-plugin插件,可以创建一个自定义的模板
1.准备一个目录结构相对完整的maven项目

2.执行archetype:create-from-project生成archetype项目


maven使用archetype插件创建自定义项目模板_第3张图片
图3

3.复制一份archetype并直接打开

①archetype是一个可以独立打开的maven项目,打开archetype项目的pom.xml可以发现使用了maven-archetype-plugin插件
②src/main/resources/archetype-resources目录下是将要被打包的模板项目结构
③需要补充完善archetype-resources目录下结构,例如:我在webapp文件夹中添加了css、js目录,在src/main目录下添加了java、resources目录。
④另外还需要在archetype的pom.xml中添加maven-resources-plugin,设置includeEmptyDirs包含空目录(maven-compiler-plugin编译Java代码,maven-resources-plugin处理资源文件默认目录src/main/resources,这里的archetype-resources模板在archetype项目的resources目录下)

maven使用archetype插件创建自定义项目模板_第4张图片
图4

META-INF/maven/archetype-metadata.xml的设置:
fileSet过滤archetype-resources中需要被打包的目录文件,设置packaged="true"项目创建时在java目录根据groupid创建相应的目录,例如:groupid设置为com.demo->生成目录时为java/com/demo

maven使用archetype插件创建自定义项目模板_第5张图片
图5

4.可以看到archetype项目的pom.xml中packaging打包方式为maven-archetype,修改groupId、artifactId并直接执行install就可以保存自定义模板项目到本地maven仓库

  demo.template
  maven-template-archetype
  1.0-SNAPSHOT
  maven-archetype

根据groupId、artifactId在本地仓库找到了jar包,并且发现本地仓库的根目录下可以找到一个archetype-catalog.xml(描述了自定义archetype坐标)


maven使用archetype插件创建自定义项目模板_第6张图片
图6

5.使用自定义模板创建maven工程:创建maven工程时选择create from archetype并Add archetype输入对应坐标

总体上来说,只要理解了src/main/resources/archetype-resources目录就是将要被打包的模板项目结构,对应着修改想要的目录结构就可以了

你可能感兴趣的:(maven使用archetype插件创建自定义项目模板)