VS Code + JetTUI 开发 Spring Boot项目,教程来了

VS Code + JetTUI 开发 Spring Boot,教程来了

别再开 IDEA 了。VS Code 写代码,JetTUI 管编译启停打包,这套组合我今天手把手教你跑通。从安装到启动第一个服务,10 分钟搞定。

一、先说清楚这套组合干什么

你得先搞明白一件事:VS Code 和 JetTUI 各干各的,不是互相替代。

工具 干什么 不干什么
VS Code 写代码、看文件、Git 操作、AI 补全 不管编译、不管启动服务
JetTUI 编译、启动/停止服务、打包 不管写代码

VS Code 负责左手,JetTUI 负责右手。中间用 JDWP 调试端口连起来,断点照打,日志照看。

你以前在 IDEA 里干的所有事,这套组合全能干,还更轻。

二、环境准备,四样东西

开工前,先确认这四样齐了:

1. Python 3.10+

bash 复制代码
python --version

没有的话去 python.org 装一个。Mac 用 brew install python,Windows 直接下安装包。

2. Java 和 Maven

bash 复制代码
java -version
mvn -version

JetTUI 需要 JAVA_HOME 设好,或者 java 在 PATH 里。Maven 也得在 PATH,mvn / mvn.cmd 能直接调用。

3. VS Code + 三个插件

装这三个就够开发 Spring Boot 了:

  • Extension Pack for Java(微软官方,含语言服务、调试、Maven 支持)
  • Spring Boot Extension Pack(Pivotal 出品,支持 application.yml 提示、Bean 跳转)
  • 你喜欢的 AI 插件(GitHub Copilot / Trae / 通义灵码,随便挑)

4. JetTUI 本体

bash 复制代码
git clone https://github.com/GengMS/JetTUI.git

或者直接下 ZIP 解压也行。你需要的就两个东西:tool_tui/ 目录和 run_fast_tui.py

三、把 JetTUI 放进你的项目

这一步是核心,也是 JetTUI 最省心的地方。

tool_tui/run_fast_tui.py 复制到你的 Spring Boot 项目根目录。

什么叫根目录?就是那个放着聚合 pom.xml 的地方。

css 复制代码
your-spring-boot-project/
├── pom.xml              ← 聚合 POM,项目根
├── run_fast_tui.py      ← 从 JetTUI 拷过来
├── tool_tui/            ← 从 JetTUI 拷过来
├── your-service-a/
│   ├── pom.xml
│   └── src/main/java/.../ServiceAApplication.java
├── your-service-b/
│   └── ...
└── your-common/

不需要改任何路径,不需要写配置文件。JetTUI 会从 tool_tui/ 所在位置往上找最近的 pom.xml,自动锁定项目根。

装依赖:

bash 复制代码
pip install textual rich

textual 是 TUI 框架,rich 负责终端美化。两个包,装完就能跑。

启动 JetTUI:

bash 复制代码
python run_fast_tui.py

终端里立刻弹出三栏界面。首屏秒开,后台扫描项目结构,几秒后服务列表自动填上。

四、用 VS Code 写代码

项目用 VS Code 打开。

左边文件树照常浏览,代码高亮、跳转、补全由 Java 语言服务提供。你装的那个 Extension Pack 会自动识别 Maven 项目,pom.xml 改了它会自动同步依赖。

写代码的时候,AI 插件帮你补全。打一个 @RestController,AI 直接帮你把整个 Controller 骨架生成出来。写个 @GetMapping,参数、返回值、异常处理一次性补齐。

写代码这一步,跟在 IDEA 里没区别,甚至更快------因为 AI 补全比 IDEA 内置的强。

五、用 JetTUI 编译:F2 缓存管理

代码写完,要编译。切到 JetTUI 终端,按 F2 进入缓存管理。

两种编译方式:

  • g:全局 mvn install,整个项目所有模块重新编译。第一次跑或者改了公共模块用这个。
  • i:增量编译,只编你选中的那个模块和它的依赖。改了一个业务模块,用这个,30 秒搞定。

编译选项可以勾选:

  • clean:先清理再编(彻底,但慢)
  • skipTests:跳过测试(日常开发必勾,不然跑测试又得好几分钟)

编译日志实时刷到面板上,出错了直接看。同时日志会写到 log/build_xxx.log,方便回头查。

s 可以随时中断正在跑的编译。 IDEA 里你试过中断 Build 吗?经常卡死。终端里 Ctrl 级别的中断,干净利落。

六、用 JetTUI 启动服务:F1 服务管理

编译完,启动服务。按 F1 进服务管理。

JetTUI 已经自动扫描出你项目里所有的 *Application.java,列成清单。比如:

scss 复制代码
nova-gateway (nova-gateway)
nova-auth (nova-auth)
nova-user (nova-user)
nova-order (nova-order)

启动一个服务:

方向键选中你要启动的服务,按 Enter

JetTUI 会:

  1. 加载 classpath(有缓存就读缓存,没有就扫一遍)
  2. 自动分配 JDWP 调试端口(从 5005 开始递增)
  3. java -jar 启动服务,suspend=n 模式
  4. 日志输出到独立页签

启动参数可以自定义。 比如指定端口:

css 复制代码
--server.port=9002 --logging.file.name=auth.log

启动多个服务:

每个服务独立页签,日志不混。你同时跑 Gateway、Auth、User 三个服务,切标签看日志,互不干扰。

停止服务:

  • 选中运行中的服务,Enter 停止单个
  • x 一键停止全部

端口分配会持久化到 debug_ports.json,下次启动复用同一个端口,不会漂移。

七、用 VS Code 断点调试

这是很多人最担心的一步:没有 IDEA 的图形化调试,怎么打断点?

JetTUI 启动服务时已经帮你开了 JDWP(suspend=n),端口是自动分配的。你在 VS Code 里配一下远程调试就行。

VS Code 里按 F5 或打开调试面板,配置 launch.json

json 复制代码
{
  "type": "java",
  "name": "Attach to JetTUI Service",
  "request": "attach",
  "hostName": "localhost",
  "port": 5005
}

端口号填 JetTUI 分配的那个(启动日志里会显示 JDWP 端口: 5005)。

点一下调试按钮,VS Code 就连上了。

接下来跟 IDEA 一模一样:

  • 代码行号左边点一下,打断点
  • 请求打到服务,命中断点
  • 看变量、看调用栈、条件断点、表达式求值,全都有

区别在哪?IDEA 自己启动服务自己调试,一套搞定。VS Code + JetTUI 是分开的:JetTUI 管启动,VS Code 管调试。

分开的好处是:服务崩溃了不会把调试器带崩,调试器卡了不会影响服务日志输出。 各管各的,反而稳。

八、用 JetTUI 打包:F3 打包管理

开发完,要出货。按 F3 进打包管理。

JetTUI 自动识别项目里可打包的模块(有 jlcloud-*.jar 产出的那些),列成清单:

css 复制代码
[ ] nova-gateway [App,Cfg]
[ ] nova-auth [App,Cfg]
[√] nova-user [App,Cfg]
[ ] nova-order [App,Cfg]
[√] nova-payment [App,Docker]

操作:

  • Enter 切换选中/取消
  • a 全选,n 全不选
  • p 开始打包选中的模块

打包选项:

  • clean:先清理
  • skipTests:跳过测试(打包时一般都跳)
  • -T 1C:并行构建,多核 CPU 利用起来

打包完成后,日志面板直接列出产出:

csharp 复制代码
[INFO] nova-user-2.1.0.jar 48.72 MB
[INFO] nova-payment-2.1.0.jar 35.19 MB

不用翻 target 目录找 jar,打包结果一目了然。

九、日常开发工作流,完整走一遍

把前面的步骤串起来,你每天的开发流程是这样的:

早上开工:

  1. VS Code 打开项目
  2. 终端跑 python run_fast_tui.py
  3. F2 增量编译改过的模块(30 秒)
  4. F1 启动你要调试的服务
  5. VS Code F5 连上 JDWP,打断点
  6. 开始写代码,AI 补全帮你飞

改了代码:

  1. VS Code 里改完保存
  2. 切终端,F2 按 i 增量编译
  3. F1 重启对应服务(Enter 停,Enter 启)
  4. VS Code 调试器自动重连

下班收工:

  1. F1 按 x 停止所有服务
  2. q 退出 JetTUI
  3. 关 VS Code

整个流程没有一次切到 IDEA,没有一次等 Indexing,没有一次看风扇狂转。

十、这套组合跟 IDEA 比,差在哪

诚实说,有几个地方 VS Code + JetTUI 目前不如 IDEA:

  • 数据库工具:IDEA 内置 Database 工具能直接查表改数据。VS Code 得装单独插件,或者用 DBeaver
  • HTTP 客户端:IDEA 的 HTTP Client 能在编辑器里发请求测试接口。VS Code 用 REST Client 插件替代,功能够用
  • Spring Bean 可视化:IDEA 能画 Bean 依赖图。VS Code 暂时没有等价功能
  • 大型项目重构:IDEA 的重构工具更成熟。但日常开发的重构,AI + VS Code 够了

这些差距,换来的是 3GB 内存和 2 分钟启动时间。值不值,你自己算。

十一、一句话总结

VS Code 写代码,JetTUI 管编译启停打包,JDWP 连调试。

三件事,三个工具,各司其职。没有谁是全家桶,但加起来比全家桶强。

Spring Boot 开发,不一定非得开 IDEA。试试这套组合,你会回来谢我。


项目地址github.com/GengMS/JetT...

在线演示gengms.github.io/JetTUI

公众号 :极客悟道

觉得有用,GitHub 给个 Star。有问题直接提 Issue。

相关推荐
Yeauty1 小时前
自建 HLS 第一问:fMP4 还是 TS?用 Rust 在进程内把两种都跑出来
开发语言·后端·rust
Zane19941 小时前
copy 和 deepcopy 到底在拷贝什么?一文讲清赋值、浅拷贝、深拷贝的引用关系
后端·python
zhiSiBuYu05172 小时前
Flask 路由新手入门与实战指南
后端·python·flask
元界metalite2 小时前
禁止 Feign!我们为什么自研 InternalServiceClient
后端
用户125758524362 小时前
进销存后台别急着上线,先重放一次退货请求
人工智能·后端·go
qq_22589174662 小时前
基于Python的城市内涝积涝监测数据可视化分析系统
后端·python·信息可视化·数据分析·django
苏三说技术2 小时前
为什么越来越多人用Apache Tika?
后端
Zane19942 小时前
Lock 接口与 AQS 核心原理:手写理解一把可重入锁是怎么运作的
java·后端
Full Stack Developme2 小时前
SpringBoot 整合 Druid 并列出参数清单
java·spring boot·后端