Gradle 是一个开源的构建自动化(build automation)工具。有关构建自动化的定义请参考:https://en.wikipedia.org/wiki/Build_automation。同时 Gradle 被设计得足够灵活可以被用来构建几乎任何类型的软件。
下面的一些特性是从宏观上来对 Gradle 的一些特性进行阐述:
高性能
Gradle 通过运行需要运行的任务来避免不必要的工作。因为输入和输出可能会改变。你还可以通过启用构建缓存来让上一次构建运行的状态可以被重用,甚至你可以在不同的机器上这样做(通过共享构建缓存)。
同时 Gradle 还有很多优化的实践,Gradle 开发小组坚持开发使用来提高 Gradle 的性能。
基于 JVM
Gradle 是运行在 JVM 虚拟机上的,所以你的机器必须要安装 JDK。针对使用 Java 平台的用户来说,这会带来非常大的好处,这些用户可以在他们的构建(build)逻辑中使用标准的 Java API。包括使用自定义任务类型和插件。同时也能够让 Gradle 更加容易的在其他平台上运行。
请注意,Gradle 并不仅仅限制于构建 JVM 项目,甚至被打包用来支持构建原生项目。
可转换
针对 Java 项目,Gradle 去掉了 Maven 的很多繁琐功能,能够更加容易的实现 Maven 的转换。通过引用合适正确的插件,你可以为你的项目减轻构建脚本的复杂性。
但是这些转换并不是为了局限你的使用:Gradle 运行你对它们进行重载(override),添加你的自定义任务,为你基于转换的项目提供更多的自定义功能。
可扩展
你可通过提供你自己的任务类型或者构建模型来对 Gradle 进行扩展。请参考针对 Android 的构建支持为样本的示范:可能会添加一些新的构建概念,例如 flavors 和 build types。
支持 IDE
一些主流的 IDE 都能够允许你导入 Gradle 的构建同时能够对其进行转换:Android Studio, IntelliJ IDEA, Eclipse 和 NetBeans。同时 Gradle 也能够支持创建导入Visual Studio 项目需要的 solution 文件。
自扫描和修复
构建扫描(Build scans)提供了一个帮助你识别构建错误和问题的扩展工具。同时这个工具也能够更好的帮助你识别和找到可能存在的构建性能问题。
你也可以和其他的用户分享你的构建扫描,这个分享功能在你希望获得其他开发人员帮助的时候就非常有用和高效。