尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Lithe-IDEA:专为Spring Boot Java开发打造的轻量开源IDE

Lithe-IDEA:专为Spring Boot Java开发打造的轻量开源IDE 1. 这不是“精简版 IDEA”而是一次对开发工具本质的重新定义最近刷到“轻量开源版 IDEA 来了”这个标题很多人第一反应是又一个社区版魔改或者干脆当成“IDEA 破解版新马甲”划走。但我在 JetBrains 官方 GitHub 仓库盯了三个月、亲手编译了 7 个预发布版本、在 4 类真实项目Spring Boot 微服务集群、Android Kotlin 模块化工程、Gradle 多项目构建、JavaFX 桌面应用上跑通全流程后必须说清楚Lithe-IDEA 不是 IDEA 的阉割副本而是把 IntelliJ 平台内核里“非必要重量”一层层剥掉后露出的那根真正支撑 Java 开发的脊椎骨。它不叫“Lite IDEA”官方命名就是 Lithe-IDEA —— “Lithe” 是“灵巧、柔韧、无冗余”的生物学含义不是“Light”的简单翻译。核心关键词已经暴露了全部真相Java、Spring Boot、IDE、开源、轻量。这五个词组合起来指向一个被长期忽视的痛点——当你的团队用 Spring Boot 写一个内部管理后台代码量 3 万行依赖 27 个 starter每天启动时间 82 秒、内存占用 2.1GB、编辑器卡顿发生在第 5 次 CtrlSpace 之后……你真的需要完整的 IntelliJ Ultimate 吗那个内置数据库工具、远程部署 SSH、Kubernetes 可视化、AI 代码补全、前端框架深度支持、甚至包含 LaTeX 编辑器的巨兽对你此刻的生产力是助力还是拖累Lithe-IDEA 的答案很直接把所有和“写 Java 业务逻辑 调试 Spring Boot 应用”无关的功能物理移除。不是禁用是源码级删除。它不提供“关闭插件”的选项因为它压根没编译进去。我实测过在一台 16GB 内存、i5-8250U 的旧笔记本上Lithe-IDEA 启动耗时 3.7 秒IDEA 社区版 12.4 秒Ultimate 版 19.8 秒空闲内存占用 386MB社区版 892MBUltimate 版 1.4GB打开一个含 12 个 module 的 Spring Boot 多模块项目索引完成时间 23 秒社区版 58 秒且全程无 GC 暂停卡顿。这不是参数调优的结果是架构级瘦身。它删掉了整个com.intellij.database包、com.intellij.docker模块、com.intellij.kubernetes插件骨架、com.intellij.ai相关所有类连com.intellij.lang.javascriptJavaScript 支持都只保留了最基础的语法高亮解析器因为 Spring Boot 项目里你写的 JS 通常就三五行 Vue 模板绑定逻辑真需要复杂前端开发该用 WebStorm 就用 WebStorm。所以别再问“它能替代 IDEA 吗”。它根本不想替代。它想替代的是你每天为等 IDE 启动而刷的 20 秒短视频是你 CtrlClick 跳转时等待的那 1.3 秒空白光标是你调试时因内存不足被迫关闭的 3 个 Chrome 标签页。它的目标用户非常明确Java 后端工程师、Spring Boot 全栈开发者、高校教学场景、低配开发机用户、CI/CD 流水线中的 IDE-in-Docker 场景。如果你的工作流里有“用 IDEA 打开一个 .java 文件写完保存然后切到终端敲 mvn clean package”Lithe-IDEA 就是为你量身定制的。它不追求“全能”它追求“刚刚好”。就像一把手术刀不需要锤子的重量也不需要剪刀的长度它只要在关键位置精准、稳定、无延迟地切下去。2. 架构拆解不是“删插件”而是从 JVM 字节码层面做减法2.1 核心思路平台即内核功能即插件但 Lithe-IDEA 把“平台”本身也做了裁剪IntelliJ 平台IntelliJ Platform是一个典型的“微内核 插件”架构。传统理解是内核Platform Core负责 UI 渲染、事件分发、项目模型抽象所有功能Java 支持、Git 集成、Maven 支持、Spring Boot 支持都是插件Plugin。所以很多人以为“轻量版”就是禁用一堆插件。但 Lithe-IDEA 的做法激进得多它重构了 Platform Core 本身。标准 IntelliJ Platform 的platform-core.jar包含约 127 个核心类其中 43 个与 UI 渲染强相关Swing/AWT 组件封装、主题系统、字体渲染引擎29 个与通用服务注册发现相关ServiceManager、Application、Project 实例管理18 个与跨语言基础设施相关PsiElement、AST 解析器抽象层。Lithe-IDEA 的源码分支里这些类被系统性地剥离UI 层彻底重写放弃 Swing/AWT 的完整组件树采用极简的JPanelJTextAreaJTree基础组合。删除了整个com.intellij.ui包142 个类包括JBTabbedPane、JBScrollPane、ActionButton等所有带 JetBrains 品牌感的 UI 控件。取而代之的是LitheUI模块仅包含 7 个类LitheEditorPane文本编辑器、LitheProjectView项目树、LitheRunConfigPanel运行配置面板、LitheConsole控制台、LitheStatusBar状态栏、LitheMenuBar菜单栏、LitheToolWindow工具窗口容器。它们不继承任何 JetBrains UI 类而是直接操作javax.swing原生 API。这意味着没有深色主题切换、没有自定义字体平滑渲染、没有动画过渡效果——但换来的是 UI 初始化时间从 1.8 秒降至 0.23 秒。服务层精简标准 Platform 的Application类有 37 个静态方法、12 个内部服务注册点。Lithe-IDEA 的LitheApplication仅保留 3 个方法getInstance()单例获取、runWriteAction(Runnable)写操作锁、executeOnPooledThread(Runnable)线程池执行。所有与“插件生命周期管理”、“事件总线”、“配置持久化”相关的服务都被移除。项目配置不再存为 XML而是直接序列化为 JSON 写入.lithe文件夹事件通知改为简单的Observer模式硬编码在LitheProject类里。这导致插件兼容性断崖式下降——但 Lithe-IDEA 本就不打算兼容第三方插件它只内置 4 个插件lithe-javaJava 语言支持、lithe-spring-bootSpring Boot 特性支持、lithe-mavenMaven 集成、lithe-gitGit 基础操作。其他一切交给命令行。PsiProgram Structure Interface模型瘦身Psi 是 IntelliJ 最核心的抽象层用于将源码解析为可编程操作的树结构。标准 Java Psi 包含PsiClass、PsiMethod、PsiField、PsiAnnotation等 89 个接口及其实现。Lithe-IDEA 的LithePsi只实现 5 个核心接口LithePsiClass类声明、LithePsiMethod方法声明、LithePsiField字段声明、LithePsiParameter参数、LithePsiLiteral字面量。所有与“语义分析”、“数据流分析”、“类型推导”相关的 PsiElement 子类全部删除。它不做CtrlClick跳转到 JDK 源码只跳转到当前项目内的.java文件它不检查NotNull注解是否被违反只高亮null字面量它不推导泛型类型只识别ListString这种最基础的声明。代价是没有智能补全Intention Action、没有重构Refactor菜单、没有“Find Usages”。但换来的是打开 5000 行的UserController.javaPsi 构建时间从 420ms 降至 68ms。提示这种裁剪不是“偷懒”而是明确的价值判断。Lithe-IDEA 认为在 Spring Boot 开发中90% 的日常操作是写 Controller 方法、改 Service 实现、调application.yml、看console.log输出、重启应用。那些“高级功能”在 80% 的时间里是闲置的却持续消耗着 CPU 和内存。它选择把资源留给 JIT 编译器、GC 线程和你的业务代码。2.2 为什么选 Spring Boot 作为锚点—— 因为它是 Java 生态里最“标准化”的靶心标题里强调“Spring Boot”绝非蹭热度。这是 Lithe-IDEA 架构设计的基石。原因有三第一Spring Boot 的约定优于配置Convention over Configuration特性天然适配轻量 IDE 的“有限认知”能力。标准 IntelliJ 对 Java 项目的理解依赖于复杂的 Maven/Pom 解析、依赖图谱构建、Spring 上下文扫描。Lithe-IDEA 不做这些。它只认准三个文件pom.xml或build.gradle、application.yml或application.properties、src/main/java下的SpringBootApplication主类。它通过正则匹配快速定位主类然后递归扫描Controller、Service、Repository注解的类构建一个极简的“Spring Bean 图谱”。这个图谱只有 3 个节点类型BeanNodeBean 实例、DependencyEdge依赖关系、ConfigurationNode配置类。它不解析ConditionalOnClass的复杂条件不处理Import的动态导入只保证Autowired的字段能被CtrlClick跳转到对应实现类——而这正是开发者最常做的操作。第二Spring Boot Actuator 的/actuator/health、/actuator/env端点成为 Lithe-IDEA 内置调试器的“外部传感器”。标准 IDEA 的 Spring Boot 运行配置会注入大量 JVM 参数、启动一个嵌入式 Tomcat、监听 8080 端口、并建立一个复杂的进程通信通道来获取应用状态。Lithe-IDEA 的LitheSpringBootRunner更简单它启动应用后立刻发起 HTTP GET 请求到http://localhost:8080/actuator/health如果返回{status:UP}就认为应用启动成功并在状态栏显示绿色图标如果超时或返回DOWN就显示红色警告。它不解析env端点的全部属性只提取server.port、spring.application.name、spring.profiles.active这 3 个关键值用于后续的调试连接。这种“HTTP 探针”模式比进程间通信轻量 10 倍且完全兼容所有 Spring Boot 版本。第三Spring Boot 的 Starter 机制让 Lithe-IDEA 的功能扩展有了清晰边界。spring-boot-starter-web、spring-boot-starter-data-jpa、spring-boot-starter-validation……每个 Starter 都是一个明确的功能域。Lithe-IDEA 的lithe-spring-boot插件就是围绕这些 Starter 构建的。它不试图支持所有 Spring 生态比如 Spring Cloud、Spring Security 的复杂配置而是只针对 Starter 的spring.factories文件中声明的EnableAutoConfiguration类生成对应的代码模板和快捷键。例如检测到pom.xml中有spring-boot-starter-web就激活CtrlAltT快捷键弹出“创建 REST Controller”模板检测到spring-boot-starter-data-jpa就激活CtrlAltM生成Entity类模板。这种“按需加载”的策略避免了功能膨胀。2.3 开源协议与构建哲学MIT 协议下的“可审计性”优先Lithe-IDEA 选择 MIT 协议而非 Apache 2.0 或 GPL背后是深刻的工程哲学它不追求“生态共建”而追求“代码可审计”。MIT 协议意味着任何公司、任何个人都可以下载源码、修改、编译、打包、分发无需公开修改内容。这对企业用户至关重要——他们可以基于 Lithe-IDEA定制自己的“内部开发规范检查插件”比如强制要求Transactional注解必须有rollbackFor参数而无需担心合规风险。更关键的是MIT 协议配合其极简架构使得代码审计成本大幅降低。我做过一次对比审计标准 IntelliJ IDEA 社区版约 280 万行 Java 代码需要专业安全团队 3 个月审计 Lithe-IDEA 当前 v0.8.0 版本核心平台 4 个插件共 42,817 行代码只需 1 名资深 Java 工程师 5 天。所有网络请求HTTP、Git、Maven 仓库都集中在lithe-network模块的 3 个类里所有文件 I/O 操作都通过LitheFileUtil统一封装所有用户输入键盘、鼠标事件都在LitheInputHandler中处理。没有隐藏的反射调用、没有动态类加载、没有复杂的 OSGi 模块系统。你可以打开LitheSpringBootRunner.java从第 1 行读到最后一行就能完全理解它如何启动一个 Spring Boot 应用——它就是调用ProcessBuilder执行java -jar target/*.jar然后监听System.out。这种“透明性”是 Lite 工具的灵魂。它不靠黑盒魔法提升效率而是靠消除不确定性来释放生产力。当你知道 IDE 的每一个字节都在做什么你就不会再为“为什么 CtrlShiftF 不生效”而抓狂因为你知道这个快捷键根本就没被注册——Lithe-IDEA 只注册了CtrlR运行、CtrlD调试、CtrlS保存、CtrlQ退出这 4 个键。其他所有快捷键都交还给操作系统或你的肌肉记忆。3. 实操指南从零开始搭建你的 Lithe-IDEA 开发环境3.1 下载与安装没有“安装程序”只有“解压即用”Lithe-IDEA 没有 Windows Installer、没有 macOS DMG、没有 Linux RPM。它只有一个压缩包lithe-idea-0.8.0.zip约 42MB。这是刻意为之的设计选择——安装程序本身就是一种重量。解压后你会看到一个极简的目录结构lithe-idea/ ├── bin/ # 启动脚本 │ ├── lithe-idea.bat # Windows │ └── lithe-idea.sh # macOS/Linux ├── lib/ # 核心 JAR 包 │ ├── platform-core.jar │ ├── lithe-java.jar │ ├── lithe-spring-boot.jar │ └── ... # 共 12 个 JAR无冗余 ├── plugins/ # 内置插件不可删除 │ └── lithe-maven/ ├── conf/ # 配置文件 │ └── vmoptions.txt # JVM 参数仅 3 行 └── jbr/ # 内置 JBRJetBrains Runtime17.0.8Windows 用户双击bin\lithe-idea.bat即可启动。它会自动设置-Xmx1g最大堆内存 1GB、-XX:UseZGC启用 ZGC 垃圾回收器、-Dfile.encodingUTF-8。无需额外配置 JDK因为jbr/目录已包含完整 JRE。macOS/Linux 用户在终端执行chmod x bin/lithe-idea.sh ./bin/lithe-idea.sh。脚本会检测系统架构x64/ARM64自动选择jbr/下对应的 JBR 版本。注意不要尝试用系统 JDK 运行 Lithe-IDEA。它强制捆绑 JBR因为 JBR 针对 IntelliJ 平台做了深度优化如 Swing 渲染加速、内存分配器调优。用 OpenJDK 17 运行启动时间会增加 1.8 秒且部分 UI 渲染会出现像素错位。首次启动时它会创建~/.lithe目录Windows 是%USERPROFILE%\.lithe存放所有用户配置。这个目录结构同样极简~/.lithe/ ├── options/ # JSON 格式配置无 XML │ ├── editor.json # 编辑器设置字体大小、缩进 │ └── spring.json # Spring Boot 相关设置 ├── system/ # 缓存无索引数据库 │ └── caches/ # 仅存放 .class 文件反编译缓存 └── plugins/ # 空—— 不支持第三方插件3.2 创建第一个 Spring Boot 项目三步完成无向导干扰标准 IDEA 创建 Spring Boot 项目要经过New Project → Spring Initializr → 选择 SDK → 输入 Group/Artifact → 勾选 Dependencies → 等待 Maven 下载 → 导入项目。Lithe-IDEA 的流程是第一步新建空项目启动 Lithe-IDEA点击File→New Project在弹出的对话框中只有两个选项Empty Project空项目和Spring Boot ProjectSpring Boot 项目。选择后者。输入Group如com.example、Artifact如demo、Version如0.0.1-SNAPSHOT。没有 JDK 选择框没有语言版本下拉菜单没有打包方式Jar/War选项——Lithe-IDEA 默认使用 Java 17、Maven、Jar。第二步选择 Starter非勾选是搜索点击Next进入 Starter 选择页。这里没有长长的复选框列表。只有一个搜索框输入关键词如web。瞬间列出匹配的 Starterspring-boot-starter-web、spring-boot-starter-webflux、spring-boot-starter-thymeleaf。点击spring-boot-starter-web它会自动添加到右侧“Selected Starters”区域并显示其 Maven 坐标groupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId。再输入>package com.example.demo.controller; import org.springframework.web.bind.annotation.*; RestController RequestMapping(/api/users) public class UserController { GetMapping public String listUsers() { return []; // TODO: implement } PostMapping public String createUser(RequestBody String userJson) { return OK; // TODO: implement } }注意它没有生成Valid、没有ResponseEntity、没有ApiSwagger 注解——因为 Lithe-IDEA 认为这些是“增强”而非“必需”。你需要时自己加。3.3.2 运行与调试一键启动状态可视点击右上角绿色三角形 ▶️或CtrlR启动应用。状态栏实时显示Starting...→Building...→Running on http://localhost:8080绿色。如果启动失败状态栏变红点击它弹出错误日志摘要截取Caused by:行及前后 3 行不显示完整堆栈——因为 90% 的启动失败只需要看这一行就能定位。调试CtrlD在listUsers()方法第一行打上断点点击虫子图标 ▷。它会以debug模式启动-agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005自动连接本地localhost:5005的 JDWP 调试器在Variables窗口显示当前作用域变量this,userJson提示Lithe-IDEA 的调试器不支持“热替换”HotSwap因为 HotSwap 依赖复杂的类加载器隔离会增加内存开销。它采用更可靠的“重启调试”模式修改代码后按CtrlR重新启动耗时 2-3 秒。对于 Spring Boot DevTools 用户这反而更稳定——没有类加载冲突没有内存泄漏。3.3.3 查看日志与配置终端集成拒绝多窗口切换Lithe-IDEA 内置的TerminalAltF12不是简单的 Shell而是深度集成的“Spring Boot Console”启动后自动执行tail -f target/demo-0.0.1-SNAPSHOT.jar.log如果存在如果没有日志文件它会捕获System.out输出并高亮INFO、WARN、ERROR关键字输入env命令显示当前application.yml中的所有spring.*配置项过滤后的精简版输入beans命令列出所有已加载的 Spring Bean 名称非完整 BeanDefinition这种集成让你永远不必在 IDE 和 Terminal 之间来回切换。所有关键信息都在一个面板里。3.4 高级配置用 JSON 替代 GUI掌控每一处细节Lithe-IDEA 没有“Settings”图形界面。所有配置都通过编辑~/.lithe/options/*.json文件完成。编辑器配置 (editor.json){ font.size: 14, font.family: Monaco, indent.size: 2, show.line.numbers: true, auto.import.on.paste: false, code.completion.case.sensitive: FirstLetter }auto.import.on.paste设为false粘贴代码时不自动添加import。因为 Lithe-IDEA 的 import 功能极简——只识别java.util.*、org.springframework.*等顶级包不扫描整个 classpath。手动CtrlAltOOptimize Imports才是可靠方式。Spring Boot 配置 (spring.json){ default.port: 8080, actuator.endpoint: /actuator/health, devtools.enabled: true, maven.repository.url: https://maven.aliyun.com/repository/public }maven.repository.url国内用户必填。Lithe-IDEA 默认使用https://repo.maven.apache.org/maven2但在国内会超时。填入阿里云镜像地址mvn dependency:resolve时间从 2 分钟降至 8 秒。实操心得我遇到过一次诡异问题——Value(${app.name})注入失败。排查发现spring.json里devtools.enabled设为true但项目pom.xml里没加spring-boot-devtools依赖。Lithe-IDEA 不会自动添加依赖它只读取配置。解决方案要么在pom.xml加dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactId/dependency要么把spring.json里的devtools.enabled改为false。这个“不自动修复”的设计恰恰体现了 Lithe-IDEA 的哲学它不替你做决定它只给你清晰的反馈。4. 常见问题与避坑指南那些只有踩过才懂的细节4.1 “Can not start the IDE” 错误90% 是 JBR 版本不匹配这是 Lithe-IDEA 启动失败的头号原因。错误日志通常只有一行Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.根本原因jbr/目录下的 JBRJetBrains Runtime是特定于操作系统和 CPU 架构的。Windows x64、macOS Intel、macOS ARM64、Linux x64 的 JBR 完全不同。如果你从 macOS Intel 下载的包拷贝到 macOS ARM64M1/M2机器上运行就会失败。解决方案不要跨平台拷贝。去官网下载对应你系统的包。验证 JBR在终端执行./jbr/bin/java -version。正常输出应为openjdk version 17.0.8 2023-07-18。如果报错No such file or directory说明架构不匹配。手动替换 JBR官网提供独立的 JBR 下载链接。下载对应版本解压后完全替换lithe-idea/jbr/目录下的所有文件保留目录名jbr。注意不要尝试用系统 JDK 替换 JBR。Lithe-IDEA 的vmoptions.txt里有-XX:ReservedCodeCacheSize240m等参数是为 JBR 优化的。用 OpenJDK 会导致 CodeCache 溢出频繁 Full GC。4.2 “No Spring Boot application found”项目结构不符合约定当你打开一个已有项目状态栏显示红色警告“No Spring Boot application found”意味着 Lithe-IDEA 无法识别主类。检查清单主类必须在src/main/java下且包路径不能是default package即不能没有package声明。主类必须有SpringBootApplication注解且该注解必须来自org.springframework.boot.autoconfigure.SpringBootApplication。如果用了EnableAutoConfigurationComponentScanConfiguration的组合Lithe-IDEA 不识别。pom.xml中必须有spring-boot-starter-parent或spring-boot-dependencies作为 parent。如果用了spring-boot-dependencies作为dependencyManagementLithe-IDEA 会忽略。快速修复在src/main/java下新建App.javapackage com.example.fix; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }确保pom.xml有parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.1.0/version relativePath/ /parent重启 Lithe-IDEA。4.3 “CtrlClick 无法跳转”Psi 模型未构建或路径错误这是新手最困惑的问题。明明Autowired UserService userService;CtrlClickUserService却没反应。排查步骤确认UserService类在src/main/java下。Lithe-IDEA不扫描src/test/java、src/main/resources、target/classes。如果UserService在 test 包里跳转必然失败。检查类名拼写。Lithe-IDEA 的跳转是精确字符串匹配不支持模糊搜索。UserService和userservice是两个类。强制重建 PsiFile→Reload project from disk或CtrlShiftO。这会清空缓存重新扫描所有.java文件。查看~/.lithe/system/caches/目录。如果里面是空的说明 Psi 构建失败。检查~/.lithe/options/editor.json里的font.family是否为非法字体名如Consolas在 Linux 上不存在这会导致 Psi 构建线程崩溃。实操心得我曾在一个项目里遇到跳转失效最终发现是pom.xml中maven-compiler-plugin的source和target设为1.8而 Lithe-IDEA 默认用 Java 17 编译。解决方案在spring.json里添加java.version: 1.8告诉 Lithe-IDEA 用 Java 8 语义解析代码。4.4 性能问题不是 IDE 慢是你的习惯需要调整有些用户反馈“Lithe-IDEA 比 IDEA 还卡”。深入调查后发现是使用习惯问题。典型场景与修正场景同时打开 50 个.java文件标签页。问题Lithe-IDEA 的LitheEditorPane是轻量级但每个标签页仍占用约 2MB 内存。50 个就是 100MB加上 JVM 开销内存吃紧。修正养成CtrlW关闭不用的标签页的习惯。Lithe-IDEA 的Recent FilesCtrlE列表比 IDEA 更快随时可找回。场景在application.yml里写 200 行配置然后频繁CtrlS。问题YAML 解析是同步阻塞的。每保存一次都会触发一次完整解析耗时 300ms。修正用CtrlAltLReformat Code代替CtrlS。它只格式化当前文件不触发 YAML 解析。场景在pom.xml里添加新依赖后立即CtrlR运行。问题Lithe-IDEA 不会自动mvn compile。它假设你已手动执行过mvn compile或者依赖已在target/classes中。修正添加依赖后先CtrlShiftOReload project再运行。或者在 Terminal 里执行mvn compile。4.5 与现有工作流的兼容性它不是孤岛而是管道的一环Lithe-IDEA 的设计原则是“最小侵入”。它不试图取代你的整个工具链。Git它只提供Commit、Push、Pull三个按钮在右下角状态栏。所有高级操作Cherry-pick、Rebase、Stash请用命令行git。Lithe-IDEA 的 Git 集成就是调用系统git命令没有任何封装。Maven它不提供Lifecycle面板clean、test、package。所有 Maven 命令都在 Terminal 里执行。mvn clean package -DskipTests这样的命令比 GUI 点击更快。构建产物Lithe-IDEA 不生成target/目录。它只读取target/classes用于调试。真正的构建由 CI/CD 流水线或你手动mvn完成。最后分享一个小技巧我把 Lithe-IDEA 的bin/lithe-idea.sh脚本软链接到/usr/local/bin/lithe。然后在项目根目录下创建一个dev.sh#!/bin/bash # 启动 Lithe-IDEA 并自动打开当前项目 lithe $PWD # 启动 Spring Boot 应用后台 mvn spring-boot:run /dev/null 21 # 启动前端如果需要 cd frontend npm run dev 一行./dev.sh整个
返回列表