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

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992

本篇文章翻译自《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。只是没有我们的最高优先级。我们非常支持任何社区去努力创建额外的构建脚本引擎。

时间: 2024-08-29 05:57:43

【Gradle用户指南】Gradle特点介绍的相关文章

Gradle用户指南(章10:Web应用程序快速入门)

Gradle用户指南(章10:Web应用程序快速入门) 本章正在完善中..... 本章介绍gradle对web应用程序的支持.Gradle为web应用程序开发提供了两个插件:War插件和Jetty插件.War插件扩展了java插件并且能为你的项目构建一个war包.Jetty插件扩展了War插件并且提供了发布你的web项目到Jetty容器中的功能. 构建一个War文件 构建War文件,你需要在项目中添加War插件. 注意:你可以在gradle发布库和源文件的samples/webApplicati

Gradle用户指南(章9:Groovy快速入门)

Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.java代码或者两者混合.在其他方面,groovy项目与java项目是一致的,就像我们在章7:java快速入门中所看到的那样. 一个简单的groovy项目 让我们来看一个示例.使用groovy插件,需要添加下面的代码得到你的构建文件中. 注意:示例代码在gradle发布的源文件包的路径samples/g

Gradle用户指南

下载安装gradle 2.1 下载地址:http://www.gradle.org/learn 安装先决条件:gradle安装需要1.6或者更高版本的jdk(jre)(可以使用java –version 验证),gradle自带groove lib库,所以不必安装groove,任何已安装groove都将被忽略.Gradle使用path路径下的jdk,当然,你也可以设置JAVA_HOME指向你的jdk安装路径. Gradle发行版是一个zip压缩文件,完整的发行版包括: 二进制文件 用户指南(ht

Gradle用户指南之初学者教程(三)

写在前面的话: 博主最近在学习Android Studio相关的东西.Gradle相对于我这个从Eclipse转过来的Android开发者,也算是一个全新的事物.但它却承担着Android构建系统中相当重要的一环.本着与人方便,自己方便的精神,觉得有必要翻译一下<Gradle User Guide>中的Tutorials相关部分.由于英语水平相当有限,请大家多多指教. 文章地址:http://blog.csdn.net/mikulee/article/details/45478177 英文原文

Gradle用户指南翻译链接

用户指南翻译: 第1-10章的翻译,不含第9章,http://pkaq.github.io/gradledoc/docs/userguide/userguide.html 第9,11-39章的翻译链接:http://blog.csdn.net/maosidiaoxian/ 最好的一本介绍Gradle的书籍:Gradle in Action, 2014年出版. 其他参考资料: [1] http://gradle.org/books/ [2] https://docs.gradle.org/2.6/

Gradle用户指南(章8:依赖关系管理基础)

章8:依赖关系管理基础 本章将介绍一些gradle依赖关系管理的基础 什么是依赖关系管理? 简略的说,依赖管理是由两部分组成的.首先,gradle需要知道你要构建或者运行的项目,以便找到它们.我们将这些导入的文件视为项目的依赖.第二,gradle需要构建或者打包你的项目产品.我们将这些导出的文件视为项目的发布.下面,让我们在细节上更多的了解这两个方面. 大部分项目都不是完全彻底的独立的.它们需要其他项目的构建文件,以便编译.测试等等.例如,为了在我的项目中使用Hibernate,当编译我的源文件

Gradle用户指南(章7:java插件)

Java插件 如我们所见,gradle是一个通用的构建工具.它可以构建你关心并实现的构建脚本.它是开箱即用的,然而,它不会构建任何东西除非你在你的构建脚本中添加代码. 大多数java项目都有非常相似的基础操作:编译java源文件,运行单元测试,和创建包含类文件的jar包.如果你不想为每个项目添加这些操作代码,那是非常好的.Gradle用插件解决这个问题.这个插件通常通过以某种方式配置你的项目来扩展它,通过添加一系列预配置的任务来做一些有用的东西.Gradle附带大量的附件,当然,你也可以编写自己

Gradle用户指南(3)-构建Java项目

1.构建基本的Java项目 为了使用 Java 插件,添加下面代码到构建文件: build.gradle apply plugin: 'java' 这个就是 定义一个 Java 项目的全部.它会将 Java 插件应用到项目中,并且添加很多 task. Gradle 会在 src/main/java 目录下寻找产品代码,在 src/test/java 寻找测试代码 . 另外在 src/main/resources 包含了资源的 JAR 文件, src/test/resources 包含了运行测试.

Gradle用户指南(中文版)

http://rinvay.github.io/android/2015/03/26/Gradle-Plugin-User-Guide(Translation)/