
Spring Boot 官方快速入门指南中的 gradlew.bat spring-boot:run 命令存在误导——该语法适用于 Maven,而 Gradle 项目应使用 bootRun 任务,否则会报“Cannot locate tasks that match 'spring-boot:run'”错误。
spring boot 官方快速入门指南中的 `gradlew.bat spring-boot:run` 命令存在误导——该语法适用于 maven,而 gradle 项目应使用 `bootrun` 任务,否则会报“cannot locate tasks that match 'spring-boot:run'”错误。
当你基于 Spring Initializr 创建一个 Gradle 构建的 Spring Boot 项目(如名为 demo 的项目),并尝试在 Windows 命令行中执行:
gradlew.bat spring-boot:run
系统会抛出如下错误:
Cannot locate tasks that match 'spring-boot:run' as project 'spring-boot' not found in root project 'demo'
这是因为 spring-boot:run 是 Maven 插件(spring-boot-maven-plugin)提供的目标(goal),其语法为:
mvn spring-boot:run
而 Gradle 项目使用的是 Spring Boot Gradle Plugin,它注册的等效任务名为 bootRun(注意是驼峰命名、无冒号、无前缀),且默认已自动配置好。
✅ 正确的运行方式(Windows):
gradlew.bat bootRun
✅ 正确的运行方式(macOS/Linux):
./gradlew bootRun
该命令会:
- 自动编译源码(compileJava)、处理资源(processResources);
- 启动嵌入式 Tomcat/Jetty/Netty(取决于依赖);
- 加载 application.properties 或 application.yml 配置;
- 运行 main 类(通常为 DemoApplication.java 中的 public static void main)。
⚠️ 注意事项:
- 确保项目根目录下存在 build.gradle(或 build.gradle.kts),且已正确应用 Spring Boot Gradle 插件(Spring Boot 3.x 推荐写法):
plugins {
id 'org.springframework.boot' version '3.0.2''
id 'io.spring.dependency-management' version '1.1.0''
id 'java'
}- 若执行 bootRun 时提示 Task 'bootRun' not found,请检查插件是否成功应用,或运行 ./gradlew tasks --all | findstr boot(Windows)验证任务是否存在。
- Spring Boot 3.x 要求 Java 17+(你使用的 Java 19.0.2 完全兼容,无需降级)。
- 如需跳过测试直接运行,可加 -x test 参数:./gradlew bootRun -x test。
? 总结:区分构建工具是关键——Maven 用 spring-boot:run,Gradle 用 bootRun。官方文档中两者的说明位置不同,务必根据所选构建工具查阅对应插件参考手册:Gradle Plugin — Running Your Application。










