前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从0到1搭建自己的脚手架(java后端)

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

作者头像
京东技术
发布2023-08-22 15:43:25
3750
发布2023-08-22 15:43:25
举报
文章被收录于专栏:京东技术京东技术

Tech 导读 授人以鱼不如授人以渔。给一份项目模板不如教大家怎么制作一份模板和使用模板快速生成新的项目,脚手架可能大家都不陌生,但是很多人只会用不会做。本文来带大家一起从0到1搭建属于自己的脚手架项目。

01

脚手架是什么

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕

脚手架:快速创建一个基础项目的模版。

02

脚手架的意义

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕

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

03

脚手架的创建

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕

3.1 编写项目模板

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

图1.springboot模版项目

3.2 生成脚手架

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

图2.maven路径示意

代码语言:javascript
复制
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,这是项目的版本号,也与下文生成模板的版本号有关。

图3.留意 pom.xml 文件中的项目 gvn

代码语言:javascript
复制
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 执行完成后脚手架项目也就创建完成,生成如下所示的结构

图4.脚手架项目创建完成生成结构示意

注:这里如果生成的是如下所示的结构 解决办法:调整如图所示的artifactId与module前缀一致

图5.调整如图所示的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

图6.在创建项目的时候也要保证maven的一致

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

代码语言:javascript
复制
          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

代码语言:javascript
复制
org.springframework.boot.demo
  spring-boot-stage-demo-archetype
  0.0.1-SNAPSHOT
  maven-archetype

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

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

04

使用脚手架创建新的项目

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目

4.1 配置脚手架的gav

图8.配置脚手架的gav

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

图9.填写要创建的目标项目的gav

4.3 配置maven

图10.配置maven

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

图11.根据新的artifactId生成新的工程

05

参考文档

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。

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

06

总结

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。

通过脚手架工程可以让你在今后的工作上对于初始化新的工程项目从1人天甚至更久缩短到1小时!

打造SAAS化服务的会员徽章体系,可以作为标准的产品化方案统一对外输出。结合现有平台的通用能力,实现会员行为全路径覆盖,并能结合企业自身业务特点,规划相应的会员精准营销活动,提升会员忠诚度和业务的持续增长。

底层能力:维护用户基础数据、行为数据建模、用户画像分析、精准营销策略的制定

▪功能支撑:会员成长体系、等级计算策略、权益体系、营销底层能力支持

▪用户活跃:会员关怀、用户触达、活跃活动、业务线交叉获客、拉新促活

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 京东技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 脚手架是什么
  • 脚手架的意义
  • 脚手架的创建
    • https://maven.apache.org/archetype/maven-archetype-plugin/
    • 总结
    相关产品与服务
    云数据库 Redis
    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档