maven3自定义archetype
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的更多相关文章
- Maven之自定义archetype生成项目骨架(一)
Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论(0) 收藏 举报 分类: Maven技术(9) ...
- Maven之自定义archetype生成项目骨架
Maven之自定义archetype生成项目骨架(一) http://blog.csdn.net/sxdtzhaoxinguo/article/details/46895013
- (转)Maven之自定义archetype生成项目骨架
背景:最近在开发一个项目的基础构件,在以后项目的开发过程中可以直接使用该构件快速的生成项目骨架进行开发. 摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其 ...
- 微服务时代之自定义archetype(模板/骨架/脚手架)
1. 场景描述 (1)随着微服务越来越常见,一个大的项目会被拆分成多个小的微服务,jar包以及jar之间的版本冲突问题,变得越来越常见,如何保持整体微服务群jar及版本统一,也变成更加重要了,mave ...
- Maven自定义Archetype
Maven提供了archetype帮助我们快速构建项目骨架,很便捷.但是,中央仓库中的archetype版本过于陈旧,构建好项目后,需要修改很多信息,甚是麻烦,那么如何自定义个archetype就显得 ...
- Maven 自定义 archetype
最近在公司经常要写一些 storm-job 工程的骨架(archetype)非常相似,为了能够将大家的工程结构固定下来以及节约建工程的成本,所以给组内自定义了maven-archetype,中途遇到了 ...
- Maven自定义Archetype(zz)
原文地址:http://www.cnblogs.com/javalouvre/p/5858162.html Maven提供了archetype帮助我们快速构建项目骨架,很便捷.但是,中央仓库中的arc ...
- 创建maven自定义archetype项目
1.安装Nexus这里是用homebrew安装, brew nexus 安装成功后,默认的访问端口为8081, 我这里的访问地址是http://192.168.99.100:8081 默认用户:adm ...
- 使用maven3 创建自定义的archetype
创建自己的archetype一般有两种方式,比较简单的就是create from project 1.首先使用eclipse创建一个新的maven project,然后把配置好的一些公用的东西放到相应 ...
随机推荐
- 在Linux上创建Postgresql数据库
由于前一次用默认的配置创建pgsql数据库倒置root的占用率达到97%. 重新创建一次数据库,很多坑又忘了. 创建一个放Data的文件夹,/majestic12/pgsql/data PGDATA ...
- JavaScript一个集合的运算类
输出都在控制台中: <script type="text/javascript"> function Set() { //这是一个构造函数 this.values = ...
- 还原数据库“XXX”时失败。System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份。
标题: Microsoft SQL Server Management Studio------------------------------ 还原数据库“GoldBellXZDepot”时失败. ...
- 求n个逆元的O(n)算法
它的推导过程如下,设,那么 对上式两边同时除,进一步得到 再把和替换掉,最终得到 初始化,这样就可以通过递推法求出模奇素数的所有逆元了. 转自 http://blog.csdn.net/acdrea ...
- Java之面向对象概述,类,构造方法,static,主方法,对象
一.面向对象概述 面向过程 "面向过程"(Procedure Oriented)是一种以过程为中心的编程思想.这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响 ...
- springJdbc like模糊查询,Spring namedParameterJdbcTemplate like查询
springJdbc like模糊查询,Spring namedParameterJdbcTemplate like查询, SpringJdbc命名参数like模糊查询,namedParameterJ ...
- poj_2186: Popular Cows(tarjan基础题)
题目链接 tarjan参考博客 本文代码参考博客 题意:求在图上可以被所有点到达的点的数量. 首先通过tarjan缩点,将所有内部两两可达的子图缩为一点,新图即为一个有向无环图(即DAG). 在这个D ...
- 函数响应式编程及ReactiveObjC学习笔记 (三)
之前讲了RAC如何帮我们实现KVO / 代理 / 事件 / 通知 今天先不去分析它的核心代码, 我们先看看ReactiveObjC库里面一些特别的东西, 如果大家点开ReactiveObjC目录应该 ...
- opencv+python3.4的人脸识别----2017-7-19
opencv3.1 + python3.4 第一回合(抄代码,可实现):人脸识别涉及一个级联表,目前能力还无法理解. 流程:1.读取图像---2.转换为灰度图---3.创建级联表---4.对灰度图 ...
- 定时器(setTimeout)的秘密
原文地址:→传送门 写在前面 setTimeout()是大家再熟悉不过的定时器,但平时对定时器的了解甚少,于是想看看setTimeout()的原理机制. setTimeout()基础 setTimeo ...