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

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


图1

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


图2

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

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


图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目录下)

图4

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

图5

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

  <groupId>demo.template</groupId>
  <artifactId>maven-template-archetype</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>maven-archetype</packaging>

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


图6

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 我jdk版本是1.7.0_95,在网上查了一下1.7属于java7maven3.3+版本都支持java7,所以我使...
    liangxifeng833阅读 1,300评论 0 2
  • 本文通过 Maven archetype 来创建自定义的项目结构,形成Maven 项目模板,避免重复的项目创建工作...
    翼徳阅读 2,397评论 0 0
  • 1.编写POM Maven项目的核心文件是pom.xml,POM(Project Objcet Model)项目对...
    zlcook阅读 5,938评论 7 26
  • 产品:氧气 1、产品定位 氧气是一款推荐性感内衣的App,现在正成长为一个售卖性感生活方式的女性社区。 作为一个男...
    王卡卡阅读 349评论 0 0