Gradle通过gradlew脚本按项目自动下载管理版本,无需全局安装;必须用gradlew而非gradle命令,首次运行gradle wrapper生成包装器;Java项目需应用java插件、遵循源码结构、显式配置JDK工具链和JUnit 5;run任务需application插件及mainClass配置。

Gradle 不需要“安装”,而是通过 gradlew 脚本按项目自动下载并管理对应版本 —— 这是它和 Maven 最本质的区别,也是新手最容易卡住的第一步。
为什么运行 gradle build 报错 “command not found”
因为没用包装器(Wrapper),直接依赖系统全局的 Gradle 环境。而官方强烈建议所有项目都使用 gradlew(Linux/macOS)或 gradlew.bat(Windows)来驱动构建,这样能确保团队成员、CI 服务器使用完全一致的 Gradle 版本。
- 首次初始化:在项目根目录运行
gradle wrapper --gradle-version 8.10.2
(推荐选 LTS 版本,如8.10.2或8.7) - 之后统一用:
./gradlew build
(Linux/macOS)或gradlew.bat build
(Windows) -
gradlew会自动检查gradle/wrapper/gradle-wrapper.properties中声明的版本,若本地不存在则从distributionUrl下载并缓存到~/.gradle/wrapper/dists/
build.gradle 最小可用 Java 项目配置
Java 插件默认不启用,必须显式应用;源码结构也需与约定匹配,否则编译失败。
- 必须包含
plugins { id 'java' },否则./gradlew compileJava会报错 “Task ‘compileJava’ not found” - 默认期望源码在
src/main/java,测试代码在src/test/java;路径不对会导致编译跳过或找不到类 - JDK 版本需显式指定(尤其 JDK 17+):
java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } - 如果用 JUnit 5,要加测试引擎依赖:
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'
并在test块里启用:test { useJUnitPlatform() }
常见错误:运行 ./gradlew run 失败
run 任务来自 application 插件,不是 java 插件自带的。想直接运行主类,得先启用插件并指定入口。
立即学习“Java免费学习笔记(深入)”;
- 添加插件:
plugins { id 'application' } - 指定主类(类名含包路径):
application { mainClass = "com.example.HelloWorld" } - 确保
src/main/java/com/example/HelloWorld.java存在且含public static void main(String[] args) - 执行:
./gradlew run
(会自动编译 + 运行)
真正麻烦的从来不是写几行配置,而是搞清哪个插件提供什么任务、哪个属性控制哪段行为——比如 java.toolchain 和 sourceCompatibility 在 Gradle 17+ 后已不等价,后者已被弃用;又比如 gradlew 第一次执行时网络不通,就会卡死在下载环节,此时要手动把 zip 包放进 ~/.gradle/wrapper/dists/ 对应目录才能继续。










