Gradle 问题与修复
Maven 与 Gradle 对比 --- Gradle 依赖缓存目录 ~/.gradle/caches/modules-2/files-2.1 --- Gradle Wrapper 组成文件 Gra…
Maven 与 Gradle 对比
| 功能 | Maven 命令 | Gradle 命令 | 说明 |
|---|---|---|---|
| 清理项目 | mvn clean |
gradle clean |
清理构建目录,删除编译生成的文件和临时文件。 |
| 打包项目 | mvn package |
gradle assemble |
将项目打包成 JAR、WAR 等可分发文件 |
| 运行单元测试 | mvn test |
gradle test |
运行项目中的单元测试 |
| 验证构建结果 | mvn verify |
gradle check |
验证项目的构建结果,包括运行集成测试 |
| 编译源代码 | mvn compile |
gradle compileJava |
编译项目的源代码 |
| 安装到本地仓库 | mvn install |
gradle publishToMavenLocal |
将打包后的文件安装到本地 Maven 仓库 |
| 部署到远程仓库 | mvn deploy |
gradle publish |
将打包的文件部署到远程 Maven 仓库 |
| 清理并打包 | mvn clean package |
gradle clean assemble |
清理并打包(组合使用) |
Gradle 依赖缓存目录
~/.gradle/caches/modules-2/files-2.1
Gradle Wrapper 组成文件
Gradle Wrapper 是一种确保项目使用特定 Gradle 版本进行构建的机制,即使系统中没有全局安装 Gradle。
Gradle Wrapper 通常由以下几个文件组成,通常位于项目的根目录下:
gradlew和gradlew.bat(w: wrapper)gradlew:Unix/Linux/macOS 系统下的可执行脚本gradlew.bat:Windows 系统下的可执行脚本- 这两个脚本用于执行 Gradle Wrapper 构建命令,它们代替了系统上直接调用
gradle命令。
gradle/wrapper/gradle-wrapper.jar- 这是 Gradle Wrapper 的核心库文件,负责下载并运行指定的 Gradle 版本。
gradle/wrapper/gradle-wrapper.properties- 这个文件是 Gradle Wrapper 的配置文件。它包含了要下载的 Gradle 版本、下载地址等信息。
Gradle bootRun 启动日志无彩色输出
在使用 gradle bootRun 启动 Spring Boot 项目时,发现日志不是彩色输出(不像用 java -jar 时那样有彩色日志),这是一个常见现象,原因与 Gradle 的输出流机制有关。Gradle 默认会将控制台输出重定向为普通文本(plain mode),而不会自动启用 ANSI 彩色输出。
Spring Boot 的日志系统(默认是 Logback)只有在检测到支持 ANSI 的终端时才会输出彩色日志。如果 Gradle 运行环境不是“交互式终端”,它就认为当前不支持颜色。
方案 1:修改 build.gradle
在 build.gradle 的 bootRun 任务中加入以下配置:
1bootRun {
2 // 启用彩色输出
3 systemProperty 'spring.output.ansi.enabled', 'ALWAYS'
4}
方案 2:命令行临时指定
1gradle bootRun --args='--spring.output.ansi.enabled=ALWAYS'
或者用环境变量的方式:
1SPRING_OUTPUT_ANSI_ENABLED=ALWAYS gradle bootRun
方案 3:在 application.yml 中全局开启彩色日志
1spring:
2 output:
3 ansi:
4 enabled: ALWAYS
这样不论你是用 bootRun、java -jar 还是其他方式运行,都会强制启用彩色日志。
项目 .gradle 工作目录下载速度慢
1distributionUrl=https://mirrors.tencent.com/gradle/gradle-8.6-bin.zip