第 06 章 第 06 章 Gradle 与构建选型:为什么有人不用 Maven(已拆分为多篇)

原章约 80440 字符,较长。已按主题拆分为以下小节,单篇约 15 分钟可读。

本节导航


原章开头引子

你 git clone 下来的第二个 Java 项目,根目录里没有 pom.xml。

有的是 build.gradle.kts、settings.gradle.kts、一个 gradlew 脚本、一个 gradle/wrapper/gradle-wrapper.properties。你照着 README 敲了 ./gradlew build,然后终端开始下载一个 100 多 MB 的 Gradle 发行版,接着是漫长的、一句话都不说的等待。八分钟后它还在跑,你开始怀疑是不是挂了。

这时候你心里冒出来的那个问题,跟 Go 世界的常识是正面冲突的:在 Go 里,构建工具这件事根本没有讨论余地 —— 就是 go build,它随语言一起装好,没有版本选择,没有配置文件,没有插件市场。一个语言怎么会有两套构建工具,而且两套都活得好好的?

这个问题问到了点子上。这一章不教你怎么写 build.gradle.kts,那一页文档就够。这一章回答的是:Gradle 跟 Maven 到底是不是一类东西、它在哪些地方做了实质改进、以及你什么时候该为它付出学习成本。