第十二章:常用命令速查与实战技巧
12.1 Maven → Gradle 命令速查表
基础构建命令
| 操作 | Maven 命令 | Gradle 命令 |
|---|---|---|
| 清理构建目录 | mvn clean | gradle clean |
| 编译主源码 | mvn compile | gradle compileJava |
| 编译测试源码 | mvn test-compile | gradle compileTestJava |
| 运行测试 | mvn test | gradle test |
| 打包(JAR/WAR) | mvn package | gradle build |
| 跳过测试打包 | mvn package -DskipTests | gradle build -x test |
| 清理后打包 | mvn clean package | gradle clean build |
| 安装到本地仓库 | mvn install | gradle publishToMavenLocal |
| 部署到远程仓库 | mvn deploy | gradle publish |
| 运行应用 | mvn spring-boot:run | gradle bootRun |
信息查询命令
| 操作 | Maven 命令 | Gradle 命令 |
|---|---|---|
| 查看依赖树 | mvn dependency:tree | gradle dependencies |
| 查看有效 POM | mvn help:effective-pom | gradle dependencies --configuration compileClasspath |
| 查看所有任务 | mvn help:describe | gradle tasks |
| 查看项目信息 | mvn help:evaluate -Dexpression=project.version | gradle properties | grep version |
| 查看 Plugin 信息 | mvn help:describe -Dplugin=spring-boot | gradle help --task bootRun |
调试命令
| 操作 | Maven 命令 | Gradle 命令 |
|---|---|---|
| 详细输出 | mvn -X | gradle build --debug |
| 信息级输出 | mvn -v | gradle build --info |
| 警告级输出 | mvn -q | gradle build --warn |
| 查看执行计划 | 无 | gradle build --dry-run |
| 构建性能分析 | 无 | gradle build --scan |
| 性能分析 | 无 | gradle build --profile |
12.2 Gradle 专用命令
# 查看所有可用任务gradle tasks gradle tasks--all# 包含所有隐藏任务# 查看项目结构(多模块)gradle projects# 查看属性gradle properties# 所有属性gradle properties|grep"version"# 查看依赖(多种方式)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 -U)gradle build --refresh-dependencies# 列出过期依赖(需要 com.github.ben-manes.versions 插件)gradle dependencyUpdates12.3 gradlew(Wrapper)命令
团队协作时,统一使用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-devtools)gradle bootRun# 带 profile 启动gradle bootRun--args='--spring.profiles.active=dev'# ─── 测试阶段 ───────────────────────────────────────# 运行所有测试gradletest# 只运行特定测试类gradletest--tests"com.own.service.UserServiceTest"# 只运行特定测试方法gradletest--tests"com.own.service.UserServiceTest.testLogin"# 运行测试并生成覆盖率报告(需要 jacoco 插件)gradletestjacocoTestReport# ─── 构建阶段 ───────────────────────────────────────# 打 WAR 包(Spring Boot 可执行 WAR)gradle 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.active=prod12.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 + O(Mac:⌘ + 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.x)gradle--stopgradle cleanBuildCache12.6 常见错误速查
错误一:Unsupported class file major version
Cause: error: Unsupported class file major version 61含义:编译用的 JDK 版本高于 Gradle 支持的版本
解决:降低 JDK 版本,或升级 Gradle 版本
# gradle.properties # 指定使用 JDK 8 构建 org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_xxx错误二:Could not find method xxx() for arguments
Could not find method compile() for arguments [...] on configuration ':compileClasspath'含义:使用了已废弃的compileconfiguration(Gradle 7+ 已移除)
解决:改用implementation
// ❌ 旧写法(Gradle 7 已移除)compile'org.springframework.boot:spring-boot-starter-web'// ✅ 新写法implementation'org.springframework.boot:spring-boot-starter-web'错误三:A problem occurred configuring project
A problem occurred configuring project ':xxx'. > Could not resolve all files for configuration ':xxx:classpath'.含义:插件下载失败或仓库配置有问题
解决:检查pluginManagement中的仓库配置,确保可以访问 Gradle 插件门户
// settings.gradlepluginManagement{repositories{maven{url'https://maven.aliyun.com/repository/gradle-plugin'}gradlePluginPortal()}}错误四:Task ‘xxx’ not found
Task 'bootRun' not found in project ':xxx'.含义:该 Task 由插件提供,但插件未正确加载
解决:确认plugins { }块中已声明对应插件
plugins{id'org.springframework.boot'version'2.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 Scan | https://scans.gradle.com/ | 免费构建分析 |
| Groovy 文档 | https://groovy-lang.org/documentation.html | DSL 语法基础 |
| 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(编译)/ providedRuntime(WAR运行时) test scope → testImplementation mvn package → gradle build mvn clean package → gradle clean build -DskipTests → -x test mvn spring-boot:run → gradle bootRun