灵活性
领域特定语言 DSL
Maven的自动化构建配置语言是XMLGradle支持Groovy、Kotlin DSL
Gradle基于脚本,能够进行自定义的构建。虽然从语言上看显然时Gradle更为灵活,但是灵活也带来了额外的学习成本 —— 新的语言。
性能
Gradle存在以下的一些特性,使得其比Maven具有更快的构建速度。
1. 增量构建 Incrementality
Gradle通过跟踪任务Task的输入、输出,只运行必要的文件,且只处理可能发生变化的文件来减少构建工作,从而提高构建速度。
2. 构建缓存 Build Cache
构建缓存可在本地重用Gradle任务的输出,同时任务输出可在不同的机器间共享,是增量构建的功能补充,其起作用的前提是之前已经有了构建输出。
3. 守护进程 Gradle Daemon
Gradle是运行在JVM上的程序,开始运行需要一定的预热时间,Gradle Daemon作为一个长期存在的进程可以减少每次构建时启动JVM的成本,同时可在内存中缓存项目结构、文件、任务等信息,从而能够达到减少后续构建的时间。Gradle Daemon在Gradle 3.0版本后默认启用。
用户体验
Maven更多地时候需要在IDE的支持下来给用户以更好的体验,Gradle除了IDE的支持外,还提供了基于WEB的交互式UI(Build Scan,企业版),可用于调试和优化构建。
