打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
创建自己的Maven模板
参考链接:

http://maven.apache.org/archetype/maven-archetype-plugin/


一、其实Maven的模板也是一个maven项目,所以我们首先要生成一个生成模板的模板项目

1.   随便找一个现成的maven项目

     如果没有执行:mvn archetype:create -DartifactId=archetype-template-generator  -DgroupId=test生成一个

2.   进入1.中的maven项目

     执行:mvn archetype:create-from-project

     好了,target/generated-sources/archetype就是我们要的项目了,把这个文件夹整体拷贝出来(当然不拷贝也可以,个人还是习惯独立出来)

     那么这个工程是怎么创建模板的呢,接着看

3.   首先我们修改下这个工程的信息,便于我们安装之后使用

     打开archetype/pom.xml

     <groupId>test</groupId>

     <artifactId>archetype-template-generator-archetype</artifactId>

     <version>1.0-SNAPSHOT</version>

     修改这三项

     然后执行:mvn -Dmaven.test.skip=true clean install

     (当然,高级定制功能我们下面再说,先走一遍最简单的流程)

     如果没有错误,那么现在我们的模板已经安装到本机maven仓库了,接着我们来试着使用这个模板创建一个maven项目

4.   执行:mvn archetype:generate -DarchetypeCatalog=local

     不出意外,我们可以看到3.中安装的模板(如果看不到,请执行:mvn archetype:update-local-catalog进行更新,本地archetype存放在:${user.home}/.m2/archetype-catalog.xml中),选择1

     提示输入目标项目的信息,这里我们根据实际情况输入参数,然后确认Y,这么就根据我们自己的模板创建了一个maven项目,这里的archetype工程我们可以复用


参考链接

https://maven.apache.org/archetype/archetype-common/archetype-descriptor.html


二、这一部分我们来定制刚才生成的archetype项目,满足我们生成自定义结果的项目的需求


1.   定制哪些文件会被作为模板

     只要我们把文件放到src\main\resources\archetype-resources目录下面,并且在src\main\resources\META-INF\maven\archetype-metadata.xml中进行配置

     比如:我们添加src\main\resources\archetype-resources\.gitignore,然后在archetype-metadata.xml中添加下面内容:

     <fileSets>

          <fileSet encoding="UTF-8" filtered="true">
               <directory></directory>
               <includes>
                    <include>.gitignore</include>
               </includes>
          </fileSet>

     </fileSets>

     重新mvn -Dmaven.test.skip=true clean install 再次生成项目,就会在新项目中加入.gitignore文件

     其他类似配置,我就不详解了

2.   属性替换

     可以在上面的.gitignore加入${pro-to-replace}内容

     并且在archetype-metadata.xml中添加内容:

     <requiredProperties>
          <requiredProperty key="pro-to-replace"/>

     </requiredProperties>

     我们想这个占位符在实际使用的时候进行替换,这时archetype-metadata.xml中filtered="true"必须配置

     这样如果在生成的向导里会提示我们输入pro-to-replace,当然我们也可以在生成的命令行中用-Dpro-to-replace=XXX进行这是,如果设置了,不会提示我们输入指

     我们也可以像这样设置默认值:

     <requiredProperty key="pro-to-replace">

               <defaultValue>pro-to-replace</defaultValue>
     </requiredProperty>

     当然如果这样,就不会提示你输入属性值,如果不想使用属性值,只有通过-Dpro-to-replace=XXX进行更改


     这么一来,重新安装,然执行创建的时候设置属性:mvn archetype:generate -DarchetypeCatalog=local -Dpro-to-replace=pro_value

     生成工程的.gitignore中的${pro-to-replace}就会被替换为pro_value


     注意:这里的属性名称不能包含.

          比如:pro.to.replace是不行的






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Maven Archetype 多 Module 自定义代码脚手架
maven创建web工程后,用myeclipse不能识别为web工程
Maven入门教程(三)
Maven项目模板
Flink实战:02.保存项目为archetype模板
Appfuse2再论
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服