第十二章:常用命令速查与实战技巧

📅 2026/7/8 15:04:47 👁️ 阅读次数 📝 编程学习
第十二章:常用命令速查与实战技巧

12.1 Maven → Gradle 命令速查表

基础构建命令

操作Maven 命令Gradle 命令
清理构建目录mvn cleangradle clean
编译主源码mvn compilegradle compileJava
编译测试源码mvn test-compilegradle compileTestJava
运行测试mvn testgradle test
打包(JAR/WAR)mvn 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 -Dexpression=project.versiongradle properties | grep version
查看 Plugin 信息mvn help:describe -Dplugin=spring-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 --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 dependencyUpdates

12.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.4

12.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=prod

12.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.gradleLoad 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 cleanBuildCache

12.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.

解决

  1. 检查仓库配置,确保仓库地址正确且可访问
  2. 不要使用--offline标志(如果是首次下载)
  3. 检查依赖坐标是否正确

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(编译)/ providedRuntime(WAR运行时) test scope → testImplementation mvn package → gradle build mvn clean package → gradle clean build -DskipTests → -x test mvn spring-boot:run → gradle bootRun