1、Gradle概述
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
2、Gradle特性
2.1 基于声明和约定的构建
Gradle的核心在于基于Groovy丰富而又可扩展的特定领域描述语言(DSL)。Groovy通过声明性的语言元素将基于声明的构建推向下层,你可以按你想要的方式进行组合。这些元素同样也为支持Java、Groovy、OSGi、Web和Scala项目提供了基于约定的构建。并且,这种声明性的语言是可扩展的。你可以添加新的或增强现有的语言元素。因此,它提供了简明、可维护和易理解的构建。
2.2 基于编程的语言依赖
声明性语言优点在于通用任务图,你可以充分将其应用在构建中。它提供了最大限度的灵活性,以让Gradle适应你的特殊需求。
2.3 构建结构化
Gradle的灵活和丰富性最终能够支持在你的构建中应用通用的设计模式。 例如,它可以很容易地将你的构建拆分为多个可重用的模块,最后再进行组装,但不要强制地进行模块的拆分。 不要把原本在一起的东西强行分开(比如在你的项目结构里),从而避免让你的构建变成一场噩梦。 最后,你可以创建一个结构良好,易于维护,易于理解的构建。
2.4 深度API
Gradle允许你在构建执行的整个生命周期,对它的核心配置及执行行为进行监视并自定义。
2.5 Gradle的可扩展性
Gradle有非常良好的扩展性。 从简单的单项目构建,到庞大的多项目构建,它都能显著地提升你的效率。 这才是真正的结构化构建。通过最先进的增量构建功能,它可以解决许多大型企业所面临的性能瓶颈问题。
2.6 多项目构建
Gradle对多项目构建的支持非常出色。项目依赖是首先需要考虑的问题。 我们允许你在多项目构建当中对项目依赖关系进行建模,因为它们才是你真正的问题域。 Gradle遵守你的布局。
2.7 多种方式管理依赖
不同的团队喜欢用不同的方式来管理他们的外部依赖。 从Maven和Ivy的远程仓库的传递依赖管理,到本地文件系统的jar包或目录,Gradle对所有的管理策略都提供了方便的支持。
2.8 Gradle是第一个构建集成工具
Ant tasks是最重要的。而更有趣的是,Ant projects也是最重要的。 Gradle对任意的Ant项目提供了深度导入,并在运行时将Ant 目标(target)转换为原生的Gradle 任务(task)。 你可以从Gradle上依赖它们(Ant targets),增强它们,甚至在你的build.xml上定义对Gradle tasks的依赖。Gradle为属性、路径等等提供了同样的整合。
2.9 易于移植
Gradle能适应你已有的任何结构。因此,你总可以在你构建项目的同一个分支当中开发你的Gradle构建脚本,并且它们能够并行进行。 我们通常建议编写测试,以保证生成的文件是一样的。 这种移植方式会尽可能的可靠和减少破坏性。这也是重构的最佳做法。
2.10 Groovy
Gradle的构建脚本是采用Groovy写的,而不是用XML。 但与其他方法不同,它并不只是展示了由一种动态语言编写的原始脚本的强大。 那样将导致维护构建变得很困难。 Gradle的整体设计是面向被作为一门语言,而不是一个僵化的框架。 并且Groovy是我们允许你通过抽象的Gradle描述你个人的story的黏合剂。 Gradle提供了一些标准通用的story。这是我们相比其他声明性构建系统的主要特点。 我们的Groovy支持也不是简单的糖衣层,整个Gradle的API都是完全groovy化的。只有通过Groovy才能去运用它并对它提高效率。
2.11 The Gradle wrapper
Gradle Wrapper允许你在没有安装Gradle的机器上执行Gradle构建。 这一点是非常有用的。比如,对一些持续集成服务来说。 它对一个开源项目保持低门槛构建也是非常有用的。 Wrapper对企业来说也很有用,它使得对客户端计算机零配置。 它强制使用指定的版本,以减少兼容支持问题。
2.12 自由和开源
Gradle是一个开源项目,并遵循ASL许可。
3、Gradle安装
目前Gradle的最新版本是2.14,可以在Gradle官网下载:https://gradle.org/gradle-download/,Gradle的其它版本可以在http://services.gradle.org/distributions下载。这里我使用的是2.10版本(gradle-2.10-all.zip),下载后加压,设置环境变量GRADLE_HOME,添加GRADLE_HOME/bin到Path环境变量即可。在命令行执行gradle -v命令回车,出现下面结果说明Gradle安装成功。
------------------------------------------------------------
Gradle 2.10
------------------------------------------------------------
Build time: 2015-12-21 21:15:04 UTC
Build number: none
Revision: 276bdcded730f53aa8c11b479986aafa58e124a6
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_92 (Oracle Corporation 25.92-b14)
OS: Windows 7 6.1 x86
参考:
http://gradledoc.qiniudn.com/1.12/userguide/overview.html#sec:special_feature_of_gradle