maven使用起来还是很方便,但默认自带的archetype配置junit版本比较老。每次创建新项目都要手动修改junit版本,所以就想着能不能自己建一个新版本出来,省得每次手动修改的麻烦。

网上找了下教程,发现还是很简单的。maven提供了一种非常快速的创建骨架模板的方式,那就是create-from-project,可以让你直接使用当前项目创建archetype。下面记录一下创建过程,以普通的springboot工程为例,创建自己的archetype:

创建普通springboot工程,项目名:Demo

创建一个基本的springboot工程,添加依赖,集成swagger2自动生成api文档。springboot+mybatis为主要框架,使用mybatis-generator生成sql映射文件。项目配置不细说,搭建完成后添加示例代码测试OK即可。

添加以下achetype插件:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.0.0</version>
</plugin>

创建archetype

Demo项目根目录({Demo-root})下执行命令 mvn archetype:create-from-project。注意此时项目{Demo-root}/target/generated-sources/目录下会生成archetype文件夹。到此步可以说已经创建了一个archetype,只是没有安装到仓库,暂时还无法使用

安装到本地仓库

命令行cd进入{Demo-root}/target/generated-sources/archetype目录下,此处需要修改以下两处地方:

【A】删除不需要的多余文件

修改src/main/resources/META-INF/maven/archetype-metadata.xml文件。其中节点fileSet定义一个文件夹,子节点directory定义文件夹位置,把不需要构建到模板文件夹删除即可。

例:

【B】增加私有仓库部署路径,需要让其他人可以使用此模板,必须增加这个配置

在当前目录下的pom.xml文件中添加以下配置项

<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>nexus Releases</name>
<url>http://{ip}:{port}/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>nexus Snapshots</name>
<url>http://{ip}:{port}/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

其中节点<id>需要指定为maven配置文件setting.xml所配置的角色ID,两处ID需要对应。例如:

<!--配置权限,使用默认用户-->
<servers>
<server>
<id>nexus-releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>

其他内容修改可在src目录下找到相应的模板文件直接修改即可,例如添加默认的readme.md文件内容等。

安装部署

在第三步的目录下(target/generated-sources/archetype),执行以下两个命令:

mvn install 只能安装到本地仓库,其他人无法使用。

mvn deploy 发布到私服,其他人也可以使用

完成

项目模板生成后pom.xml({Demo-root}/target/generated-sources/archetype/pom.xml)中会对artifactId添加后辍-archetype。可以记录此文件的gav直接添加使用模板,或者从Nexus中查找模板坐标使用

自定义archetype完成,可以愉快使用了!

首发自个人博客:solooo.net

maven3自定义archetype的更多相关文章

  1. Maven之自定义archetype生成项目骨架(一)

      Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论(0) 收藏 举报  分类: Maven技术(9)  ...

  2. Maven之自定义archetype生成项目骨架

    Maven之自定义archetype生成项目骨架(一) http://blog.csdn.net/sxdtzhaoxinguo/article/details/46895013

  3. (转)Maven之自定义archetype生成项目骨架

    背景:最近在开发一个项目的基础构件,在以后项目的开发过程中可以直接使用该构件快速的生成项目骨架进行开发. 摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其 ...

  4. 微服务时代之自定义archetype(模板/骨架/脚手架)

    1. 场景描述 (1)随着微服务越来越常见,一个大的项目会被拆分成多个小的微服务,jar包以及jar之间的版本冲突问题,变得越来越常见,如何保持整体微服务群jar及版本统一,也变成更加重要了,mave ...

  5. Maven自定义Archetype

    Maven提供了archetype帮助我们快速构建项目骨架,很便捷.但是,中央仓库中的archetype版本过于陈旧,构建好项目后,需要修改很多信息,甚是麻烦,那么如何自定义个archetype就显得 ...

  6. Maven 自定义 archetype

    最近在公司经常要写一些 storm-job 工程的骨架(archetype)非常相似,为了能够将大家的工程结构固定下来以及节约建工程的成本,所以给组内自定义了maven-archetype,中途遇到了 ...

  7. Maven自定义Archetype(zz)

    原文地址:http://www.cnblogs.com/javalouvre/p/5858162.html Maven提供了archetype帮助我们快速构建项目骨架,很便捷.但是,中央仓库中的arc ...

  8. 创建maven自定义archetype项目

    1.安装Nexus这里是用homebrew安装, brew nexus 安装成功后,默认的访问端口为8081, 我这里的访问地址是http://192.168.99.100:8081 默认用户:adm ...

  9. 使用maven3 创建自定义的archetype

    创建自己的archetype一般有两种方式,比较简单的就是create from project 1.首先使用eclipse创建一个新的maven project,然后把配置好的一些公用的东西放到相应 ...

随机推荐

  1. CSS3-loading动画(一)

    前两天从一个网站中看到了一些比较好的loading动画效果,是用纯CSS3来写的,感觉不错,就尝试着照着效果来自己写出来. 在开始之前,先复习一个小知识:CSS3新增的关键帧动画,可以用来实现很多的动 ...

  2. java constructor 在构造子类时,一定会调用到父类的构造方法 “ 私有属性被继承了?”问题

    ” Error:Implicit super constructor Pet() is undefined. Must explicitly invoke another constructor “ ...

  3. [CF161D]Distance in Tree-树状dp

    Problem Distance in tree 题目大意 给出一棵树,求这棵树上有多少个最短距离为k的点对. Solution 这个题目可以用点分治来做,然而我到现在还是没有学会点分治,所以只好用树 ...

  4. python新手之一环境安装

    今天开始学习python,首先环境安装 1.在https://www.python.org/downloads/下载python2.X或者3.X(ps:这里建议下载32位的python ,因为64位p ...

  5. UVa455 Periodic String 的wronganswer问题探讨,以及AC的新思路

    题目的意思是一个字符串有某个长度为k的字符串通过不断重复形成的,而k被称为该字符串的周期.而我们所要做的是找出该字符串的最小周期. input The first line is an integer ...

  6. DOM0级事件处理、DOM2级事件处理

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Python如何实现单步调试

    遇到大型python项目,如何定位问题和监控程序的运行状态是一个程序员必须掌握的技能,今天小编为你带来python程序的单步调试方法,方便易用,简单易记! 首先你需要在所调试程序的开头中:import ...

  8. ASP.NET 平台下的MVC框架

    这段时间在学习MVC框架,希望自己的一点心得能够帮助正在学习的同仁. 在阅读一些大牛的博客的时候看到一句话,感觉特别好,“你应该尝试MVC,是因为最终你会学到一些东西,它可以使你成为更好的Web开发人 ...

  9. Python基础之常用模块(二)

    一.sys模块 1.sys.exit() 退出程序,这是正常退出程序,与之前用的break不同的是,break只是退出循环,循环之后的代码还会正常运行 2.sys.argv  会返回一个列表,列表中的 ...

  10. SQL Server 数据库表的管理

    上一篇文章简单梳理了一下SQL Server数据库的安装和基本操作,这篇文章主要讲述一下数据库表的管理 一.数据库的创建 有关数据库的创建有两种方式,一种是通过视图创建,第二种就是通过T-SQL语句来 ...