Java如何搭建脚手架(自动生成通用代码),创建自定义的archetype(项目模板)
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); border-top-left-radius: 7px; border-top-right-radius: 7px; color: rgba(255, 255, 255, 1); height: 1.8em; line-height: 1.8em; padding: 5px }
新建项目时,有些配置和包总是相同的,每次添加非常麻烦,并且都是重复性复制粘贴的工作。此时,一个优秀的程序员,会想着如何不做重复性的工作,去提高工作效率。
那什么叫脚手架呢?当搭建一个项目时,一些基础性的工作,如一些共同的组件、服务、配置、测试等在新建项目时就一起生成,形成一个模板。这个就叫做脚手架。
本篇博客包含
①分析整个工程包含的结构
②如何创建脚手架;
③如何使用脚手架
一、项目包含的结构
在我们的项目中,有一个文件,叫read.me,就是用来说明项目的信息,其中就描述了项目的相关信息。
1.项目包结构
每个公司的项目名称、包名称,都有自己公司的标准。所以结构都不相同。并且每个项目的特点也不同。对于小项目或者以模块为项目的微服务,多采用controller,service,dao,entity的分包方式;而对于大的单体应用,更多采用的是以业务命名的包方式。这两种各有优缺点。前者命名的方式,代码量相对较少,代码复用率高,缺点是相对较聚集,耦合度高,拆分不方便。后者业务能够聚聚,方便查找,更清晰,维护方便。本人更倾向于后者。
以本人的为例,如下图所示:

2.各个层的模板类
包括controller、service、mapper等包中的模板类。每个类的命名、注解、返回的响应实体都统一。开发代码时以这些类作为模板,统一风格和标准。
如下图所示:


二、如何创建脚手架
创建步骤:
1.首先创建一个spring-boot的maven项目。
假如需要搭建一个web项目,则需要引入SpringMvc作为基础;假如搭建一个task或者rop项目,则需要引入对于的定时任务包等相关包。(参考上面的包结构)
2.搭建基本的项目完成
将项目运行起来,能够访问并进行单元测试,说明项目基本的没有问题。将项目中的.class,.setting,.project的文件删除调。
3.然后在项目pom中加入以下插件配置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.0.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
注:对于已经存在的项目,也可以将项目做成脚手架,同样先将.class,.setting,.project等不必要的文件删除,再加入插件
4.运行插件
在maven中,双击archetype:create-from-project运行archetype插件,运行的结果在控制台中显示:BUILD SUCCESS 说明构建成功,同时可以看到文件存放的路径。如下图:


6.执行安装命令
在文件的存放路径下(archetype目录中),打开cmd窗口,执行命令:mvn clean install 。如下图所示,直到看到 BUILD SUCCESS,说明执行成功了。


7.执行结果
成功之后,就可以在本地仓库的根目录中看到一个文件:archetype-catalog.xml, 打开该文件,可以看到对应的archetypes结果,并且其中的groupId和artifactId能在仓库中找到,如下图:


8.然后依然在该archetype目录执行命令:mvn archetype:crawl
当看到 BUILD SUCCESS时,说明成功了。
三、如何使用脚手架
在IntelliJ IDEA中使用脚手架
1.添加脚手架
在idea中引入脚手架 点击菜单File -> new -> Project... 如下图所示,选择maven,勾选Create from archetype,点击 Add Archetype按钮,
填写groupId和artifactId、version信息(就是archetype-catalog.xml文件中的信息),点击OK,便添加完成。

2.填写项目名称
点击next,填写项目名称,然后确定,便生成了整个项目结构。
注:包下有文件的才会生成,而空包不会生成。
结果如下图:

若觉得博文不错 请点击推荐,感谢你的支持。
.
Java如何搭建脚手架(自动生成通用代码),创建自定义的archetype(项目模板)的更多相关文章
- ionic + asp.net core webapi + keycloak实现前后端用户认证和自动生成客户端代码
概述 本文使用ionic/angular开发网页前台,asp.net core webapi开发restful service,使用keycloak保护前台页面和后台服务,并且利用open api自动 ...
- python 自动生成C++代码 (代码生成器)
python 代码自动生成的方法 (代码生成器) 遇到的问题 工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错:而借用pyth ...
- 使用xorm工具,根据数据库自动生成 go 代码
使用xorm工具,根据数据库自动生成 go 代码 引入 使用 golang 操作数据库的同学都会遇到一个问题 -- 根据数据表结构创建对应的 struct 模型.因为 golang 的使用首字母控制可 ...
- 使用mybatis-generator工具自动生成mybatis代码
使用mybatis-generator工具自动生成mybatis代码 步骤如下: 1.引入maven 依赖,在项目pom.xml文件中添加 <plugin> <groupId> ...
- [Dynamic Language] 用Sphinx自动生成python代码注释文档
用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...
- vs code自动生成html代码
在dreamveawer中新建一个htm自动会生成一个标准的html代码,那在vscode得一行一行写吗?太烦了吧,各种关键词搜,哎妈 终于找到了办法,现在这里记录下: 第一步:在空文档中输入! 第二 ...
- 借Adobe XD之力,自动生成Flutter代码
概述 今天,我们来聊聊一个专门为"懒人程序员"准备的工具--Adobe XD.使用它可以快速将原型设计图转换为可执行的Flutter代码, 而由于Flutter自身跨平台的特性,因 ...
- JAVA入门[7]-Mybatis generator(MBG)自动生成mybatis代码
一.新建测试项目 新建Maven项目MybatisDemo2,修改pom.xml引入依赖.dependencies在上节基础上新增 <dependency> <groupId> ...
- 【转】Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中 ...
随机推荐
- 第二十八篇 -- 写一个简陋的WIFI服务器界面
效果图: Dlg.cpp // WIFIWMITestDlg.cpp : implementation file // #include "stdafx.h" #include & ...
- linux signal信号(SIGHUP、SIGINT、SIGQUIT、SIGILL、SIGTRAP、SIGABRT...........................)
SIGHUP /* hangup */ ~~~~~~ SIGHUP,hong up ,挂断.本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知 ...
- SPOJ ABCDEF题解
题面 源 OJ 未 AC(卡 \(map\) ,不想写 \(hash\) ). 看到 \(n \leq 100\) ,显然 \(O(n^6)\) 会挂掉,所以要优化. 考虑到原式可化为 \(a \ti ...
- Java 执行控制流程
1.带标签的break会中断并跳出标签所指的循环: 2.带标签的continue会中断本次循环,并开始标签所指处循环的下一轮循环.
- 去掉文件中的^M
一般情况下用:set ff=unix就可以解决问题,如果无效,用下面的方法手工完成: :%s/[ctrl+v] [ctrl+m]//g ctrl+v表示按住Ctrl键再按下v键.
- Git-06-远程仓库
本地仓库推送到远程仓库 1 创建ssh key 用户主目录下运行如下命令,然后一路回车 ssh-keygen -t rsa -C "1029612787@qq.com" 2 找到公 ...
- Python语言系列-01-入门
python的出生与应用 #!/usr/bin/env python3 # author:Alnk(李成果) """ 1,python的出生与应用 python的创始人为 ...
- 用三个while循环和tkinter实现一个显示屏
用三个while循环和tkinter实现一个显示屏 import tkinter as tk import time # 输入框是跟程序打交道的一个途径,例如程序要求你输入账号密码,那么它就需要提供两 ...
- pikachu 目录遍历 敏感信息泄露
目录遍历漏洞概述在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能变的更加灵活. 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执 ...
- 通过Mssql提权的几种姿势
本文记录针对SQL Server数据库,在拿到shell之后进行提权的5种方法. 一. xp_cmdshell提权 上面的数据库连接需要知道sa的密码,连接之后,在下面的sql命令处执行: exec ...