【Gradle用户指南】Gradle特点介绍

jopen 9年前

本篇文章翻译自《Gradle User Guide》,若想查看原文,请戳http://www.gradle.org/  。

    1.介绍

    我们想介绍Gradle给你,Gradle是一个构建系统,我们认为这是在Java世界里的一个飞跃式的发展。

    Gradle提供给我们:

    (1)一个像Ant一样非常灵活的通用构建工具

    (2)一种可切换的,像Maven一样基于约定的构建框架,约定优于配置

    (3)强大的对于多工程构建的支持

    (4)强大的基于Apache lvy的依赖管理

    (5)完全支持现有的Maven和lvy仓库

    (6)支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml文件

    (7)非常适合构建Ant tasks和build

    (8)Groovy构建脚本

    (9)非常丰富的域模型来描述你的构建

     在第二单元,你会发现更多的关于Gradle的概述,除此之外,还有更多的教程在等着你,学的高兴:-)


    1.1关于这个用户指导

    关于这个用户指南,就像是Gradle本身,正在处于飞速发展中。关于Gradle的一些部分还没有完成,有一些内容不准确,或者假定你已经知道了很多关于Gradle的知识。我们需要你去完善这个用户指南,你可以在Gradle的官网上找到更多的文档。

    在这份文档中,你会发现一些图表,用来表示task之间的依赖关系。这些工具类似于UML中的依赖符号,第一个task指向另外一个task,代表第一个task依赖于另一个。

    

    2.概述

    2.1特点

    下面的列表是Gradle的特点:

    (1)声明构建和协议构建

    Gradle的核心是基于Groovy的丰富的可扩展的领域特定语言(DSL),通过提供你自定义的声明语言元素,Gradle把依赖关系传递到下一层中,这些元素也提供了对很多语言的协议构建支持,比如java、Groovy,OSGI,Web和Scala项目。甚至,声明语言是可扩展的,你可以有自己的新语言元素或者是加强现有的。这样,就提供了一个简洁、易于维护和理解的构建过程。

     (2)依赖型编程语言

    声明式的语言构建于一个通用的任务图之上,在你的构建任务重可以充分的利用。它提供了适应你独特需求的最大灵活度的工具。

     (3)结构化构建

    Gradle的灵活性和和丰富性允许你用通用的设计原则来构建项目。比如说,构建可重用的的逻辑块的逻辑非常简单。不要试图去强迫拆散本应该在一起的东西,比如说是项目的层次结构。这样可以避免项目太分散,因为分散的项目会导致你的构建过程变成一个噩梦!最后,你可以构建一个结构良好、易于维护、理解的构建过程。

    (4)深度API

    在构建执行的整个生命周期里,你可以嵌入很多的钩子,Gradle允许你检测和自定义配置和执行非常核心的行为。

    (5)Gradle Scales

    Gradle Scales 非常好,它可以增加你的生产力。从简单的单项目到企业的多项目构建都可以。随着功能的增加,它可以解决很多大型企业构建过程中的问题。

    (6)多项目构建

    Gradle对多项目构建的支持非常好,Gradle还提供了部分构建,如果你构建一个单项目,那么Gradle会构建整个项目的目录,在多项目的构建中,你可以选择构建部分项目,增量构建可以大大的节省你的时间。

    (7)很多方式管理依赖

    不同的团队喜欢使用不同的方式来管理外部依赖,Gradle为所有的方式都提供了支持。你可以使用远程的依赖管理库,比如Maven和ivy或者是本地的文件系统。

    (8)Gradle是第一个集成的构建工具

    Ant的task是支持的,更有趣的事,Ant的project也是支持的。Gradle为Ant的项目提供了深度支持,在运行时可以把Ant的 targets转换城本地的Gradle任务。你可以在Gradle中依赖或者是改进Ant,你甚至可以在Gradle的任务重宣布对build.xml 的依赖。Gradle支持现有的Maven仓库和Ivy仓库,Gradle还提供了将Maven的pom.xml转换成Gradle脚本的工具。 Maven项目的运行时导入时代即将到来。

    (9)容易迁移

    Gradle可以适应你有的任何结构,因此你可以在项目运行的生产环境中进行项目构建,我们通常建议写一个测试程序来保证项目正常运行,使用Gradle可以尽可能的减少项目迁移出现的问题,这也是进行项目重构的最佳实践,也就是“baby steps”。

    (10)Groovy

    Gradle使用Grovvy来写脚本,而不是XML,这是因为Groovy比XML的可读性更好。Gradle的设计并不是要提供一个严格的框架。 Gradle提供了一些标准,但是并不是不能修改的。这是Gradle和其他声明性构建系统的区别和特色。Groovy不仅仅是糖衣,添加Groovy得到了一个愉快和富有成效的经验。

    (11)Gradle Wrapper

    Gradle Wrapper 允许你在没有安装Gradle的机器上运行Gradle脚本,在一些持续性的集成服务器上是非常有用的。

    (12)免费开源

    Gradle是开源项目,并且采用是ASL协议授权。


    2.2为什么采用Groovy?

    我们认为领域特定语言(基于动态语言)相对于XML在构建脚本方面是优势巨大的。有很多动态语言,为什么选择Groovy呢?原因在与进款gradle是一个通用的构建工具,但是主要工作核心还是Java项目。在这样的项目组里面,每个人都是熟悉Java的,所以我们希望对所有成员都能够足够透明。

    在这种情况下,你可能会问我们为什么不直接使用java作为构建脚本语言呢?这是因为虽然Java很强大,但是也有局限性,在这种需求下不如 Python、Groovy、Ruby强大,Java太复杂了。而Groovy即有和Java相同的基础,也有它自己的特点。

    对于Java开发人员与Python或Ruby知识或学习的欲望,上述论点并不适用。它的设计非常适合在JRuby创建另一个构建脚本引擎或Jython。只是没有我们的最高优先级。我们非常支持任何社区去努力创建额外的构建脚本引擎。
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992