使用 maven 创建项目模板
前言
微服务的概念越来越流行,随着服务粒度越来越细,拆分的模块越来越明确,我们的工程项目也变得越来越多。
有时候一个项目搭建,需要集成数据库、Spring 框架、消息框架、分布式任务框架、缓存等等,如果每次都新建空项目,重新配置,有点太麻烦,所以可以使用项目模板功能
maven archetype:create-from-project,制作符合需求的脚手架工程
配置 demo 工程
一般制作的话,使用公司内常用的中间件依赖,制作一份统一的模板,后续新建项目就能更加快速和模块分级合理化。
这里记录的是常规项目模板制作:
打开 IDEA,新建一个工程(同样可以使用 IDEA 工具中自带的模板)

新建模块 module,制定合适的模块层级
├── test-controller
│ ├── pom.xml
│ └── src
├── test-core
│ ├── pom.xml
│ └── src
├── test-dao
│ ├── pom.xml
│ └── src
├── test-deploy
│ ├── pom.xml
│ └── src
....// 其它扩展模块
├── README.md
├── .gitignore
└── pom.xml
例如上面那样结构,在 src 目录下方 java、resource、webapp 等文件
生成模板
mvn archetype:create-from-project
在项目目录下,输入该指令,等待执行完
可以在本地模式下测试模板是否符合预期,进入 target 目录下的 archetype 目录
cd ${Your Project File Directory}/target/generated-sources/archetype

例如上图,确认项目结构无误后,将模板安装到本地
mvn install
接着就能在 .m2/repository 目录下看到 archetype-catalog.xml,在里面多了刚才生成的模板
<archetype>
<groupId>org.example</groupId>
<artifactId>test-archetype</artifactId>
<version>1.0-SNAPSHOT</version>
<description>test-archetype</description>
</archetype>
生成项目
mvn archetype:generate \
-DarchetypeGroupId=org.example \
-DarchetypeArtifactId=test-archetype \
-DarchetypeVersion=1.0-SNAPSHOT \
-DinteractiveMode=false \
-DarchetypeCatalog=local \
-Dversion=1.0.0-SNAPSHOT \
-DgroupId=cn.sevenyuan \
-DartifactId=sevenyuan
-D 后面的参数是要重点说明一下的:
archetypeGroupId:模板组织 IDarchetypeArtifactId:模板 artifact IDarchetypeVersion:模板版本号interactiveMode:是否启用交互模式archetypeCatalog:模板目录位置,分为 remote 和 localversion:自己应用的版本号groupId:自己应用的组织 IDartifactId:自己应用的 artifact ID
例如我使用了 cn.sevenyuan 这个组织名,生成的目录结构如下

上传模板到仓库
需要在 target/generated-sources/archetype 目录下的 pom 文件中加入仓库地址,例如如下示范
<!--运行 mvn deploy 时上传构件到本地仓库 -->
<distributionManagement>
<repository>
<id>xxx-releases</id>
<name>Nexus Release Repository</name>
<url>http://xxx.com/nexus/content/repositories/xxx-release/</url>
</repository>
<snapshotRepository>
<id>xxx-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://xxx.com/nexus/content/repositories/xxx-test/</url>
</snapshotRepository>
</distributionManagement>
接着在 archetype 目录下,执行 deploy 命令
mvn deploy
只要别人在 .m2 配置了该仓库地址,就可以一起使用这个项目模板
参看链接
使用 maven 创建项目模板的更多相关文章
- Maven创建项目
Maven创建项目 Maven翻译成中文是『专家.内行』.Maven是Apache组织中一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息管理的优秀工具 本文将 ...
- vs创建项目模板和项模板
原文地址:https://msdn.microsoft.com/zhcn/library/xkh1wxd8(v=vs.140).aspx 如何:创建项目模板 Visual Studio 2015 ...
- SpringMVC Maven创建项目
一.配置Maven环境: 1.去官网下载好Maven,并解压: 2.添加环境变量: ①添加环境变量,如下: ②把maven的bin目录添加到环境变量path下面,如下(我系统是win10,win7编辑 ...
- MAVEN 创建项目
使用archetype生成项目骨架 MAVEN 创建项目JAR 和 MAVEN创建项目WAR中是使用特定的acrchetype来进行创建项目,如果使用其他的archetype来创建项目或是使用 mvn ...
- 使用maven创建项目
http://192.168.4.112/rdmanager/main/index.jhtml 1.对于第一次下载某个项目的源码,按照下面的步骤进行: (1)在D:\projects\目录下的空白位置 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...
- 使用 .NET CORE 创建 项目模板,模板项目,Template
场景:日常工作中,你可能会碰到需要新建一个全新的解决方案的情况(如公司新起了一个新项目,需要有全新配套的后台程序),如果公司内部基础框架较多.解决方案需要DDD模式等,那么从新起项目到各种依赖引用到能 ...
- 【maven】maven创建项目问题
这个问题困扰了很多,几个月在做大数据课设的时候,本想创建maven项目,但是创建项目失败了.这次又碰到maven创建项目失败,终于解决了.下面按碰到问题的时间来描述,所以需要从头认真看 前提须知 Ma ...
- 用maven创建项目引入js文件位置
用maven创建项目引入js文件位置 截图如下:
随机推荐
- Dubbo——服务目录
引言 前面几篇文章分析了Dubbo的核心工作原理,本篇将对之前涉及到但却未细讲的服务目录进行深入分析,在开始之前先结合前面的文章思考下什么是服务目录?它的作用是什么? 正文 概念及作用 清楚Dubbo ...
- 在windows上安装docker
开启Hyper-V 添加方法非常简单,把以下内容保存为.cmd文件,然后以管理员身份打开这个文件.提示重启时保存好文件重启吧,重启完成就能使用功能完整的Hyper-V了. pushd " ...
- WeChair项目Beta冲刺(2/10)
团队项目进行情况 1.昨日进展 Beta冲刺第二天 昨日进展: 昨天由于组内成员课程繁重,但是大家还是花时间一起开会谈论了开发的一些细节和交流了一些问题 2.今日安排 前端:扫码占座功能和预约功 ...
- C#数据结构与算法系列(十):中缀表达式转后缀表达式
1.具体步骤 1)初始化两个栈:运算符栈s1和储存中间结果的栈s2:2)从左至右扫描中缀表达式:3)遇到操作数时,将其压s2:4)遇到运算符时,比较其与s1栈顶运算符的优先级: (1)如果s1 ...
- Area.js下载
因为vant AddressEdit 地址编辑的必要组件area.js网站经常进不去,所以存在这里,area.js 代码如下: export default { province_list: { 11 ...
- element ui 版本升级
element ui 版本升级 1. 卸载之前版本 npm uninstall element-ui 2.重新安装element-ui npm i element-ui 3.就如package.jso ...
- JavaScript图形实例:窗花图案
1.窗花基本框线 设定曲线的坐标方程为: n=25; r=100; x=r/n*cos(5*θ)+r*cos(θ); y=r/n*sin(5*θ)+r*sin(θ); (0≤θ≤2π ...
- SpringBoot2.x的依赖管理
前提 这篇文章是<SpringBoot2.x入门>专辑的第1篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 主要梳理一下SpringBoot2.x ...
- 【总结】Array、ArrayList、List
一.Array(数组) 1.申明时必须要指定数组长度. 2.数据类型安全. 申明数组如下: 1 class Program 2 { 3 static void Main(string[] args) ...
- 洛谷 P6582 【座位调查】
这道题就两个步骤: 1.找联通块个数:判断是否符合标准并且找联通块个数 我用的广搜实现的,思路挺简单的: 先找一个联通块的端点,根据题中的定义,一个联通块的端点,周围所不是座位的个数(指上下左右),只 ...