
12.1 Maven → Gradle 命令速查表基础构建命令操作Maven 命令Gradle 命令清理构建目录mvn cleangradle clean编译主源码mvn compilegradle compileJava编译测试源码mvn test-compilegradle compileTestJava运行测试mvn testgradle test打包JAR/WARmvn packagegradle build跳过测试打包mvn package -DskipTestsgradle build -x test清理后打包mvn clean packagegradle clean build安装到本地仓库mvn installgradle publishToMavenLocal部署到远程仓库mvn deploygradle publish运行应用mvn spring-boot:rungradle bootRun信息查询命令操作Maven 命令Gradle 命令查看依赖树mvn dependency:treegradle dependencies查看有效 POMmvn help:effective-pomgradle dependencies --configuration compileClasspath查看所有任务mvn help:describegradle tasks查看项目信息mvn help:evaluate -Dexpressionproject.versiongradle properties | grep version查看 Plugin 信息mvn help:describe -Dpluginspring-bootgradle help --task bootRun调试命令操作Maven 命令Gradle 命令详细输出mvn -Xgradle build --debug信息级输出mvn -vgradle build --info警告级输出mvn -qgradle build --warn查看执行计划无gradle build --dry-run构建性能分析无gradle build --scan性能分析无gradle build --profile12.2 Gradle 专用命令# 查看所有可用任务gradle tasks gradle tasks--all# 包含所有隐藏任务# 查看项目结构多模块gradle projects# 查看属性gradle properties# 所有属性gradle properties|grepversion# 查看依赖多种方式gradle dependencies# 所有依赖gradle dependencies--configurationimplementation# 只查看 implementationgradle dependencies--configurationruntimeClasspath# 运行时类路径gradle dependencyInsight--dependencyspring-core# 某依赖的来源分析gradle dependencyInsight--dependencyspring-core--configurationcompileClasspath# 多模块命令gradle :module-name:build# 构建指定模块gradle :module-name:dependencies# 查看指定模块依赖gradle :module-name:test# 运行指定模块的测试# 并行 缓存最优构建gradle build--parallel--build-cache# 强制刷新依赖等效 mvn -Ugradle build --refresh-dependencies# 列出过期依赖需要 com.github.ben-manes.versions 插件gradle dependencyUpdates12.3 gradlewWrapper命令团队协作时统一使用gradlew代替全局gradle# Windows.\gradlew build.\gradlew clean build-x test.\gradlew bootRun.\gradlew bootWar.\gradlew dependencies# Linux / macOS./gradlew build./gradlew clean build-x test./gradlew bootRun./gradlew bootWar# 查看 Wrapper 使用的 Gradle 版本.\gradlew--version# 升级 Wrapper 版本.\gradlew wrapper--gradle-version 7.6.412.4 Spring Boot 项目日常命令# ─── 开发阶段 ───────────────────────────────────────# 启动应用热重载需要配合 spring-boot-devtoolsgradle bootRun# 带 profile 启动gradle bootRun--args--spring.profiles.activedev# ─── 测试阶段 ───────────────────────────────────────# 运行所有测试gradletest# 只运行特定测试类gradletest--testscom.own.service.UserServiceTest# 只运行特定测试方法gradletest--testscom.own.service.UserServiceTest.testLogin# 运行测试并生成覆盖率报告需要 jacoco 插件gradletestjacocoTestReport# ─── 构建阶段 ───────────────────────────────────────# 打 WAR 包Spring Boot 可执行 WARgradle bootWar# 输出build/libs/live.war# 打普通 WAR 包不含嵌入式 Tomcat 引导代码gradle war# 输出build/libs/live-1.0.war# 清理 打包CI/CD 常用gradle clean bootWar-xtest# ─── 部署阶段 ───────────────────────────────────────# 直接运行打好的 JAR/WARjava-jarbuild/libs/live.war# 带 profile 运行java-jarbuild/libs/live.war--spring.profiles.activeprod12.5 实战技巧技巧一快速检查配置是否正确# 只做配置检查不执行任何构建最快速的验证方式gradlehelp# 验证依赖能否正常解析不编译代码gradle resolveDependencies技巧二查看最终打包包含哪些文件# 列出 WAR 包内容不解压直接查看gradle bootWar jar tf build/libs/live.war|head-50# 或者解压查看cdbuild/libs jar xf live.warlsWEB-INF/lib/# 查看依赖 JAR技巧三解决 Gradle 构建卡住/超时# 查看 Daemon 状态gradle--status# 停止所有 Daemon解决卡住问题gradle--stop# 重新构建gradle clean build技巧四离线构建无网络环境# 使用本地缓存不从网络下载gradle build--offline 前提之前已经正常构建过依赖已缓存到~/.gradle/caches/技巧五查看某依赖被谁引入排查版本冲突# 查看 spring-core 是被谁引入的gradle dependencyInsight--dependencyspring-core--configurationcompileClasspath# 输出示例# org.springframework:spring-core:5.0.9.RELEASE (selected by rule)# variant compile [# ]# --- org.springframework:spring-webmvc:5.0.9.RELEASE# | --- org.springframework.boot:spring-boot-starter-web:2.0.5.RELEASE# | | \--- compileClasspath技巧六IDEA 中同步 Gradle 配置修改build.gradle后IDEA 右上角会出现 提示点击同步。也可以快捷键Ctrl Shift OMac⌘ Shift O右键build.gradle→Load Gradle Changes技巧七查看 Gradle 缓存大小并清理# 查看缓存目录大小Windows PowerShell(Get-ChildItem ~/.gradle/caches-Recurse|Measure-Object-PropertyLength -Sum).Sum / 1GB# 清理 Gradle 缓存超过一年未使用的缓存gradle--stop# 手动删除 ~/.gradle/caches/ 目录谨慎操作# 或者使用 Gradle 内置清理Gradle 8.xgradle--stopgradle cleanBuildCache12.6 常见错误速查错误一Unsupported class file major versionCause: error: Unsupported class file major version 61含义编译用的 JDK 版本高于 Gradle 支持的版本解决降低 JDK 版本或升级 Gradle 版本# gradle.properties # 指定使用 JDK 8 构建 org.gradle.java.homeC:/Program Files/Java/jdk1.8.0_xxx错误二Could not find method xxx() for argumentsCould not find method compile() for arguments [...] on configuration :compileClasspath含义使用了已废弃的compileconfigurationGradle 7 已移除解决改用implementation// ❌ 旧写法Gradle 7 已移除compileorg.springframework.boot:spring-boot-starter-web// ✅ 新写法implementationorg.springframework.boot:spring-boot-starter-web错误三A problem occurred configuring projectA problem occurred configuring project :xxx. Could not resolve all files for configuration :xxx:classpath.含义插件下载失败或仓库配置有问题解决检查pluginManagement中的仓库配置确保可以访问 Gradle 插件门户// settings.gradlepluginManagement{repositories{maven{urlhttps://maven.aliyun.com/repository/gradle-plugin}gradlePluginPortal()}}错误四Task ‘xxx’ not foundTask bootRun not found in project :xxx.含义该 Task 由插件提供但插件未正确加载解决确认plugins { }块中已声明对应插件plugins{idorg.springframework.bootversion2.0.5.RELEASE// 提供 bootRun}错误五Could not resolve xxxx依赖无法解析Could not resolve com.example:some-lib:1.0.0. No cached version available for offline mode.解决检查仓库配置确保仓库地址正确且可访问不要使用--offline标志如果是首次下载检查依赖坐标是否正确12.7 日常开发工作流日常开发工作流对比 Maven ┌─────────────────────────────────────────────────────────────────┐ │ Maven 工作流 │ Gradle 工作流 │ ├─────────────────────────────┼────────────────────────────────── ┤ │ 1. 修改代码 │ 1. 修改代码 │ │ 2. mvn compile │ 2. gradle compileJava │ │ 3. mvn test │ 3. gradle test │ │ 4. mvn clean package │ 4. gradle clean build │ │ -DskipTests │ -x test │ │ 5. java -jar target/*.jar │ 5. java -jar build/libs/*.jar │ └─────────────────────────────┴──────────────────────────────────┘ 推荐在 IDEA 中上述步骤可以直接通过 Gradle 面板双击对应任务完成无需命令行。12.8 学习资源汇总资源地址说明Gradle 官方文档https://docs.gradle.org/最权威英文Gradle DSL 参考https://docs.gradle.org/current/dsl/API 文档Spring Boot Gradle 插件文档https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/Spring 官方Gradle 插件搜索https://plugins.gradle.org/插件门户Gradle Build Scanhttps://scans.gradle.com/免费构建分析Groovy 文档https://groovy-lang.org/documentation.htmlDSL 语法基础GitHub Gradle 示例https://github.com/gradle/gradle/tree/master/subprojects官方示例12.9 全教程知识总结学习路径回顾 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 第一章 理解 Gradle 与 Maven 的核心区别 第二章 安装配置设置国内镜像 第三章 熟悉项目目录结构与 Maven 基本相同 第四章 掌握 Groovy DSL 基础语法 第五章 依赖管理scope 映射、BOM、排除冲突 第六章 插件java、war、spring-boot、dependency-management 第七章 Task 系统执行模型、自定义任务 第八章 多模块项目配置 第九章 实战将本项目 pom.xml → build.gradle完整迁移 第十章 Gradle Wrapper版本锁定团队统一 第十一章 构建优化增量构建、缓存、并行 第十二章 命令速查、常见错误、日常工作流 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 核心记忆点Maven → Gradle 最重要的映射 pom.xml → build.gradle settings.gradle groupId → group ... version → version ... parent → plugins { id org.springframework.boot version ... } properties → ext { } 或 gradle.properties dependencies → dependencies { } compile scope → implementation provided scope → compileOnly编译/ providedRuntimeWAR运行时 test scope → testImplementation mvn package → gradle build mvn clean package → gradle clean build -DskipTests → -x test mvn spring-boot:run → gradle bootRun