使用mavan构建自定义项目脚手架
首先抛出一个问题是为什么要构建自定义的脚手架,maven已经为了我么提供了很多脚手架,方便我们快速的创建一个普通java项目或者是web项目,然而在实际开发中,例如银行项目,大部分都是ssm架构,我们完全可以抽取出一个公共的模板,方便后续项目的构建,再比如分布式开发中我们通常会构建多个子模块,这样的构建是很耗时的,我们也完全可以将搭建好的项目构建成为自己的脚手架,方便后续有类似的项目开发。构建过程如下:
1、定义自己的项目,搭建基础的框架,添加基础设施,这里做一个简单地demo

2、进入项目根目录下,打开终端或者cmd命令窗口,执行 mvn archetype:create-from-project 生成脚手架,然后进入target/generated-sources/archetype目录下,可以看到脚手架已经生成,执行mvn clean install 安装到本地仓库,这样脚手架就安装成功
3、利用脚手架创建新的项目,新建一个空白目录,进入后执行 mvn archetype:generate -DarchetypeCatalog=local 然后等待命令提示,选择你的脚手架并且输入group、archetype、version后,mvn便会自己将项目创建好,这里需要注意的是 -DarchetypeCatalog=local这个参数,如果不添加则mvn会去远程加载archetypeCatalog.xml文件,这个文件是非常大的,构建过程也会变的很慢,指定后则会去读取本地的archetypeCatalog.xml文件,这个文件在我们构建脚手架时会被自动在本地mvn仓库中创建。

4、将项目导入ide中可以看到所有的基础包和类都被完整的构建出来,直接可以基于此进行新项目的开发

使用mavan构建自定义项目脚手架的更多相关文章
- 自定义项目脚手架- Maven Archetypes
		
在上篇Intellij修改archetype Plugin配置 中我们已经简单介绍了关于archetype的作用. 简单来说maven archetype插件就是创建项目的脚手架,你可以通过命令行或者 ...
 - Vue.js项目脚手架构建
		
vue.js文档:https://cn.vuejs.org/v2/guide/ 参考这个或者参考菜鸟教程也可以,不过还是那句话官网权威. 我这个主要是看相关的学习视频搭建的. 一.环境准备 环境准备( ...
 - 使用 .NET CLI 构建项目脚手架
		
前言 在微服务场景中,开发人员分配到不同的小组,系统会拆分为很多个微服务,有一点是,每个项目都需要单元测试,接口文档,WebAPI接口等,创建新项目这些都是重复的工作,而且还要保证各个项目结构的大体一 ...
 - SpringAOP03 项目脚手架、自定义注解、织入切面、引介增强
		
1 项目脚手架 利用 Maven 进行创建 1.1 利用IDEA创建一个Maven原型项目 技巧01:原型Maven项目是没有webapp文件夹和resources项目文件夹的,需要自己手动创建:创建 ...
 - 构建maven项目,自定义目录结构方法
		
构建maven项目 创建自定义的文件目录方法: 在项目名称右键-->Builder Path-->Configure Builder Path...Source菜单下的Add Folder ...
 - vue-cli脚手架构建了项目,想去除Eslint验证,如何设置?
		
vue-cli脚手架构建了项目,想去除Eslint验证,如何设置? 在webpack.base.conf.js里面删掉下面: preLoaders: [ { test: /\.vue$/, loade ...
 - 手写Maven的archetype项目脚手架
		
一.背景 maven是一个很好的代码构建工具,采用“约定优先于配置”的原则进行项目管理,相信很多的java开发者应该都了解maven并可能在工作当中都是通过maven来管理项目的,在创建的项目的时候, ...
 - 用commander.js构建自己的脚手架工具
		
随着前端技术的发展,工程化逐渐成为了一种趋势.但在实际开发时,搭建项目是一件很繁琐的事情,尤其是在对一个框架的用法还不熟悉的时候.于是很多框架都自带一套脚手架工具,在初始化前端项目的时候就可以不用自己 ...
 - grunt入门讲解7:项目脚手架grunt-init
		
grunt-init是一个用于自动创建项目脚手架的工具.它会基于当前工作环境和你给出的一些配置选项构建一个完整的目录结构.至于其所生成的具体文件和内容,依赖于你所选择的模版和构建过程中你对具体信息所给 ...
 
随机推荐
- Cocos Creator 功能介绍
			
cc.Class({ extends: cc.Component, properties: { anim: cc.Animation }, playRun: function() { this.ani ...
 - Mysql问题1862
			
使用Navicat连接MySQL数据库出现1862错误(1862:Your password has expired.To log in you must change it change it us ...
 - Understanding FiddlerScript
			
Understanding FiddlerScript FiddlerScript is one of the most powerful features in Fiddler; it allows ...
 - windows环境下安装nginx
			
(1)下载 官网:http://nginx.org/en/docs/windows.html 下载:http://nginx.org/en/docs/windows.html 点击:nginx/Win ...
 - numpy模块常用函数解析
			
https://blog.csdn.net/lm_is_dc/article/details/81098805 numpy模块以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter note ...
 - libusb: android上集成libusb库
			
1. 下载libusb库. 可以到libusb库的官网(https://libusb.info/)或者是其官方的github仓库(https://github.com/libusb/libusb/re ...
 - Win10 高频率使用的快捷组合键
			
Win10 系统有很多的快捷组合键,学会使用这些快捷组合键可以节省一点时间 0x01 Win+D 显示或最小化桌面在键盘上按下Win+D可以切换显示桌面或最小化桌面所有内容: 0x02 Ctrl+Sh ...
 - 【Log】logback实现每个类和包自定义级别输出
			
本例想实现对类或者包中的日志,自定义级别输出 方法一 1.自定义日志级别方式如下: 代码文件:Logger monitorLogger = LoggerFactory.getLogger(" ...
 - [报错处理]Python Requests - No connection adapters
			
出错信息很清楚:Python请求 - 没有连接适配器. 你得把网络协议加进入网址: http://192.168.1.61:8080/api/call 没有 http:// 请求不知道如何连接远程. ...
 - vue 框架安装系列问题
			
npm install --global vue-cli 错误提示:vue-cli-service' 不是内部或外部命令,也不是可运行的程序或批处理文件解决:如果是npm安装的 执行 npm -g b ...