你有没有经历过这种时刻:从 GitHub 克隆了一个 SpringBoot项目,用idea打开,10分钟之后就可以把项目跑起来,但是用 VS Code 打开, 没有运行按钮,没有绿色小三角,两百个文件里你不知道哪个是入口。就是一个文件夹,静静地躺在那里。你折腾了2天都没把项目跑起来
这个尴尬跟 Java 难不难没关系,纯粹是工具还没打开。
由于vscode和Java工具的发展都很迅速,我最近 尝试了用VS Code 开发 Spring Boot 项目,发现现在用 VS Code 开发 Spring Boot 的体验,跟我印象里“Java 开发必须用 IDEA”的时代,已经不太一样了。
以前我是怎么跑 Spring Boot 的
早些年我跑一个 Spring Boot 项目,流程大概是这样的:
先确认本机装了 Maven,mvn -v看一下版本。没有?去官网下压缩包,解压,配MAVEN_HOME,改PATH,重启终端。然后mvn clean package,等它下载一堆依赖,看着日志刷屏。跑起来了,再去浏览器开localhost:8080。
如果我想调试,还得手动配-agentlib:jdwp那一串 JVM 参数,或者写个脚本。整个过程不能说难,但每一步都在消耗你的注意力,而这些注意力本来应该花在业务逻辑上。
Maven Wrapper:项目自带的“免安装 Maven”
后来出现了Maven Wrapper(就是项目根目录里那个mvnw和mvnw.cmd)。它的逻辑很简单:项目自己带一份 Maven,你不需要在系统里装。
第一次运行./mvnw package的时候,它会自动下载指定版本的 Maven 到本地缓存,然后用这份 Maven 来构建项目。对团队来说,这意味着所有人都用同一个 Maven 版本,不会出现“你本地是 3.8,我本地是 3.9,构建结果不一样”的问题。
VS Code 的 Java 扩展包直接驱动 Maven Wrapper,所以你连mvnw都不用敲。项目里的pom.xml被读到之后,Maven 视图就出现了,package就在 Lifecycle 里等着你点。
如果你的项目没有maven wrapper,也可以直接去找一个其他项目有的,然后把项目的mvnw,mvnw.cmd和.mvn文件夹复制过来,只需要改一下 .mvn/wrapper/maven-wrapper.properties 里的版本号,让它跟你项目需要的 Maven 版本一致,比如:
两种方式对比:手动装 Maven vs Maven Wrapper
| 手动装 Maven | Maven Wrapper | |
|---|---|---|
| 前置条件 | 系统里装好 Maven,配好环境变量 | 项目自带,零配置 |
| 版本一致性 | 依赖开发者本机环境,容易不一致 | 项目锁定版本,团队统一 |
| VS Code 集成 | 需要手动指向 Maven 安装路径 | 扩展自动识别并驱动 |
| 适合场景 | 个人项目、需要全局 Maven 的场景 | 团队协作、CI/CD、教程项目 |
现在在 VS Code 里跑 Spring Boot 是什么体验
装两个扩展包:Extension Pack for Java和Spring Boot Extension Pack。
装完之后,VS Code 会自己找到pom.xml,开始导入项目。状态栏显示Java: Ready,Explorer 里多出Java Projects和Maven两个视图。
当然你也需要配置本地的jdk
使用vscode的命令面板,搜索Java runtime
接着就会自动挑战到配置页面
springboot插件安装好之后,会在左边出现springboot的图标
然后你点一下Maven 视图里的package,看着终端里跑出BUILD SUCCESS。
再点一下Spring Boot Dashboard里的 Run,几秒钟后,Dashboard 告诉你应用跑在哪个端口,点Open In Browser,页面就出来了。
点开springboot入口类,也可以run/debug
全程不用敲命令。
另外值得说的是,当你点击springboot图标里面的debug按钮之后
在controller里面还会展示一些非常有用的信息,甚至比idea还好
比如会显示每个接口的访问地址
还可以看到项目所有的端点和内存占用
点击如下图标表示之查看自己定义的端点
点击右边的网络图标,可以直接调用端点
如果你之前因为“Java 环境太麻烦”而没在 VS Code 里写过 Spring Boot,现在可以重新试一次。不用装 Maven,不用背命令,装两个扩展包,点几下按钮,一个 Web 应用就跑起来了。