从0到1搭建自己的脚手架(java后端) | 京东云技术团队
一、脚手架是什么
脚手架是一种基础设施工具,用于快速生成项目的框架代码和文件结构。它是一种标准化的开发工具,使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统。
二、脚手架的意义
主流的微服务架构体系下很多公司会将原有的单体架构或者繁重的微服务进行拆分。这个时候按照模块(商品、订单、用户、库存、优惠、搜索、管理后台..)、按照领域驱动设计(投保、理赔、支付、保单管理)等进行拆分就需要很多的微服务项目,如果一个一个的去创建微服务其实是在做重复的工作容易出错而且没有意义,浪费人力物力。这个时候基础性的持久层、日志、异常处理、权限控制等在项目创建时一起生成不仅减少了重新创建或部分复制带来的风险而且高效。
三、脚手架的创建
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/
作者:京东健康 马仁喜
来源:京东云开发者社区

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GOTC 2023 OpenSDV 软件定义汽车专题论坛精彩回顾
2023年5月28日,由OpenSDV汽车软件开源联盟承办的全球开源技术峰会(GOTC)软件定义汽车专题论坛圆满落幕。本次论坛邀请到来自主机厂及芯片、操作系统、自动驾驶、车云、开源软件服务等汽车产业链上下游企业及相关交叉领域的十余位专家,在主题演讲环节围绕其在各自领域的实践进行了经验分享、趋势预判、策略探讨,并在圆桌会议环节延续了OpenSDV联盟首届年度技术峰会时的“SDV2025”话题,围绕2025年软件定义汽车时代的发展样貌、面临的机遇与挑战等进行了深入地交流探讨及观点呈现。 精彩内容回顾: 倪永富 — OpenSDV 汽车软件开源联盟代秘书长 分享主题:汽车软件开源开放平台的实践之路 “开源是发展包括汽车操作系统在内的基础软件技术和生态的最佳组织形式。软件定义汽车时代需要专业面向汽车领域的开源平台推动汽车软件发展,赋能汽车产业。OpenSDV汽车软件开源联盟将推动产学研协同,共同孵化开源项目、建设开源工作组、开展开源活动、构建开源生态,以开源方式促进技术突破、代码共建、标准协同、技术应用落地,推动产业发展。” 谢宝友 — 国科础石 操作系统技术总工 分享主题:础光系列操作系统 ...
- 下一篇
背景 | 基于 Transformers 的编码器-解码器模型
!pipinstalltransformers==4.2.1!pipinstallsentencepiece==0.1.95 Vaswani 等人在其名作 Attention is all you need 中首创了 基于 transformer 的编码器-解码器模型,如今已成为自然语言处理 (natural language processing,NLP) 领域编码器-解码器架构的 事实标准 。 最近基于 transformer 的编码器-解码器模型训练这一方向涌现出了大量关于 预训练目标函数 的研究, 例如 T5、Bart、Pegasus、ProphetNet、Marge 等,但它们所使用的网络结构并没有改变。 本文的目的是 详细 解释如何用基于 transformer 的编码器-解码器架构来对 序列到序列 (sequence-to-sequence) 问题进行建模。我们将重点关注有关这一架构的数学知识以及如何对该架构的模型进行推理。在此过程中,我们还将介绍 NLP 中序列到序列模型的一些背景知识,并将 基于 transformer 的编码器-解码器架构分解为 编码器 和 解码器 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库