从 0 到 1 搭建自己的脚手架(java 后端)

搭建,自己,脚手架,java,后端 · 浏览次数 : 167

小编点评

**脚手架什么是?** 脚手架是一种基础设施工具,用于快速生成项目的框架代码和文件结构。它是标准化的开发工具,使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统。 **脚手架的作用** 脚手架可以用来拆分大型项目,使其更易于管理和维护。它可以被用来: * 将项目拆分成多个模块,使其更易于开发和维护。 * 将项目拆分成不同的领域,使其更易于开发和测试。 * 减少重新创建或部分复制带来的风险。 * 提高开发效率。 **脚手架的创建** * 创建一个基础项目的模板。 * 使用 IDEA 打开项目模板。 * 运行项目,确保基础项目正常构建。 * 注意版本号,它与下文生成模板的版本号有关。 * 使用 idea 打开后配置maven,在创建项目的时候也要保证maven的一致性。

正文

一、脚手架是什么

脚手架是一种基础设施工具,用于快速生成项目的框架代码和文件结构。它是一种标准化的开发工具,使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统。

二、脚手架的意义

主流的微服务架构体系下很多公司会将原有的单体架构或者繁重的微服务进行拆分。这个时候按照模块(商品、订单、用户、库存、优惠、搜索、管理后台..)、按照领域驱动设计(投保、理赔、支付、保单管理)等进行拆分就需要很多的微服务项目,如果一个一个的去创建微服务其实是在做重复的工作容易出错而且没有意义,浪费人力物力。这个时候基础性的持久层、日志、异常处理、权限控制等在项目创建时一起生成不仅减少了重新创建或部分复制带来的风险而且高效。

三、脚手架的创建

3.1 编写项目模版

首先我们要有一个基础项目的模板,这个模板中集成了开发时所需要的常用配置,你可以自己搭建,或者找一个基础项目如:SpringBoot 项目中已经引入了 MyBatis-Plus, Redis, Logback, Hutool, Swagger-UI 等。或者将公司的架构沉淀出一个基础项目的模板。

springboot模版项目:

3.2 生成脚手架

3.2.1 使用 idea 打开项目模板

使用 IDEA 打开基础项目,查看一下 maven 的配置路径,搭建过程中要保证 maven 路径始终一致,我的 maven 路径如下。

D:/Program Files/apache-maven-3.2.5
D:\Program Files\apache-maven-3.2.5\conf\settings.xml
D:\Program Files\apache-maven-3.2.5\repository

然后运行一下项目,要确保基础项目是正常的。

3.2.2 注意版本号

然后留意一下 pom.xml 文件中的项目 gvn,这是项目的版本号,也与下文生成模板的版本号有关。

org.springframework.boot.demo
spring‐boot‐stage‐demo
0.0.1‐SNAPSHOT

3.2.3 构建脚手架

方式一:打开命令行窗口 Terminal ,正常情况指向的是本项目的目录,如果不是则 cd 到本项目,然后输入:

mvn archetype:create-from-project #从已有的项目中生成archetype.

方式二:当前项目所在文件夹下执行

eg: 项目的跟路径为 D:\spring-staggingcmd下执行
d:
cd D:\spring-stagging
mvn archetype:create-from-project

执行完成后脚手架项目也就创建完成,生成如下所示的结构


注:这里如果生成的是如下所示的结构

解决办法1.调整如图所示的artifactId与module前缀一致

将产生的target目录移动到新的目录,打开gitbash进行如下操作

删除idea的相关文件
rm -rf .idea
find . -name " .iml" -type f -print -exec rm -rf {} ;
删除不需要的实例代码find . -name "xxxMain" -type f -print -exec rm -rf {} ;
eg:将脚手架放到D:\spring-stagging-archetype 目录下,目录下主要存放src和pom文件即可

3.2.4发布脚手架

用idea打开后配置maven

在创建项目的时候也要保证maven的一致否则不能找到对应的脚手架pom

配置distributionManagement后deploy到artifactId仓库
否则创建的时候:Could not find artifact org.springframework.boot.demo:spring-boot-stage-demo-archetype:pom:0.0.1-SNAPSHOT

      
        
          xxx-central
          libs-releases-local
          http://artifactory.66.com/libs-releases-local
        
        
          xxx-snapshots
          libs-snapshot-local
          http://artifactory.66.com/libs-snapshots-local
        
      

pom里的 gav就是以后创建项目时用到的脚手架的gav

org.springframework.boot.demo
  spring-boot-stage-demo-archetype
  0.0.1-SNAPSHOT
  maven-archetype

上传脚手架项目到git代码仓库保存便于以后更新和沉淀。

四、使用脚手架创建新的项目

4.1配置脚手架的gav

4.2填写要创建的目标项目的gav

4.3配置maven

4.4根据新的artifactId生成新的工程

五、参考文档

https://maven.apache.org/archetype/maven-archetype-plugin/

作者:京东健康 马仁喜

来源:京东云开发者社区

与从 0 到 1 搭建自己的脚手架(java 后端)相似的内容:

从 0 到 1 搭建自己的脚手架(java 后端)

脚手架是一种基础设施工具,用于快速生成项目的框架代码和文件结构。它是一种标准化的开发工具,使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统。

博客园众包平台:嵌入式开发任务悬赏5万,招募开发者接单

博客园众包平台是我们从今年5月开始的商业化突围项目,一边在以企业微信+自己搭建的GitLab简单运营众包业务,一边在融资投入平台系统的建设,当前已召集到1000多位合作开发者,多数是有多年开发经验的资深开发者。 万事开头难,虽然召集了这么多合作开发者,却一边面临僧多粥少的尴尬,一边面临有单无人接的难

企业如何从0到1搭建BI系统

在进行BI系统搭建之前,有两个问题一定是大家思考最为深入的: 1、 为什要搭建BI系统? 2、 搭建BI系统能解决什么问题? 我们搭建的信息化系统运行了一段时间之后,来自各个业务系统的订单、库存、交易账目、客户和供应商等都会积累产生大量数据,来自企业所处行业和竞争对手的数据以及来自企业所处的其他外部

【AI应用开发全流程】使用AscendCL开发板完成模型推理

从模型推理需要的开发板环境搭建到执行推理,本文主要是为大家介绍从Ascend910训练到Ascend310推理的昇腾开发全流程。

kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数

场景: kettle中http post步骤如何发送http请求且传递body参数? 解决方案: http post步骤中直接设置Request entity field字段即可。 1、手边没有现成的post接口,索性用python搭建一个简单的接口,关键代码如下(安装python环境略): fro

让你的文档从静态展示到一键部署可操作验证

用户在根据文档进行操作时,会出现根据文档内容搭建环境困难、代码调试失败、功能无法使用的情况,主要是由于文档中有年久失修、没人维护、无法跑通的代码,给用户快速上手带来很多的挑战。为了解决文档中的这些用户体验问题,通过函数计算的能力让阿里云的文档从静态展示升级为动态可操作验证,用户在文档中单击一键部署可

一种基于E3处理器平台的NAS完整方案(从电脑组装到网站部署)

本文介绍了本人基于E3平台搭建NAS系统的一套完整方案,内容涵盖了硬件选择,系统选择,网盘软件与内网穿透方法。

Pybind11和CMake构建python扩展模块环境搭建

使用pybind11的CMake模板来创建拓展环境搭建 从Github上下载cmake_example的模板,切换分支,并升级pybind11子模块到最新版本 拉取pybind11使用cmake构建工具的模板仓库 git clone --recursive https://github.com/mr

私有云盘-可道云-安装和使用和数据迁移

私有云盘是什么 随着云计算和移动办公大潮的到来,iPad、智能手机等家庭联网设备不断增多,以及搭载小容量SSD笔记本电脑的流行,能够跨平台分享的个人云服务需求不断增长;而今天的个人云服务也已经极大丰富,从2TB的百度网盘到商务人士中流行的Dropbox和Box个人云,不但免费,而且功能界面简单易用。

从0到1构造自定义限流组件

在系统高可用设计中,接口限流是一个非常重要环节,一方面是出于对自身服务器资源的保护,另一方面也是对依赖资源的一种保护措施。比如对于 Web 应用,我限制单机只能处理每秒 1000 次的请求,超过的部分直接返回错误给客户端。虽然这种做法损害了用户的使用体验,但是它是在极端并发下的无奈之举,是短暂的行为,因此是可以接受的。