第二章 概述

第二章 概述

目录

2.1. 特征
2.2. 为什么选择Groovy?

2.1. 特征

这里是一些Gradle的功能列表。

  • 声明式构建和按照惯例构建
    Gradle的核心是一个基于Groovy的丰富的可扩展域特定语言(DSL)。Gradle通过提供声明式语言元素,将声明式构建推向下一个层次,您可以随意组合。这些元素还为Java,Groovy,OSGi,Web和Scala项目提供了逐个会议的支持。甚至更多,这种说明性的语言是可扩展的。添加您自己的新语言元素或增强现有语言元素,从而提供简洁,可维护和易于理解的构建。

  • 用于依赖编程的语言
    声明性语言位于通用任务图之上,您可以充分利用您的构建。它提供了极大的灵活性,使Gradle适应您的独特需求。

  • 构建你的构建
    Gradle的灵活性和丰富性最终使您可以将常用的设计原则应用于您的构建。例如,从构建逻辑的可重用部分组成构建是非常容易的。内联的东西,不必要的indirections是不合适的。不要被强迫拆散属于一起的东西(例如在你的项目层次结构中)。避免像霰弹枪的变化或不同的变化,把你的构建成为维修噩梦的气味。最后,您可以创建一个结构良好,易于维护,易于理解的构建。

  • 深度API
    从被嵌入到构建执行的整个生命周期的许多钩子中,Gradle允许你监视和定制其配置和执行行为到其核心。

  • Gradle秤
    Gradle比例很好。它显着提高了您的生产力,从简单的单一项目建立到庞大的企业多项目生成。这是构建构建的真实情况。借助先进的增量构建功能,解决许多大型企业构建的性能问题也是如此。|

  • 多项目构建
    Gradle对多项目构建的支持非常出色。项目依赖是一等公民。我们允许您在多项目构建中为项目关系建模,因为它们确实适合您的问题域。Gradle遵循你的布局,反之亦然。

  • Gradle提供了部分构建。如果您构建一个子项目,Gradle负责构建子项目所依赖的所有子项目。您也可以选择重建依赖于特定子项目的子项目。与增量构建一起,这对于大型构建来说是一个很大的节省时间。

  • 许多方法来管理你的依赖关系
    不同的团队更喜欢不同的方式来管理他们的外部依赖。Gradle为任何策略提供了便利的支持。从远程Maven和Ivy存储库的传递依赖管理到本地文件系统上的jar或目录。

  • Gradle是第一个构建集成工具
    蚂蚁任务是一等公民。更有趣的是,蚂蚁项目也是一流的公民。Gradle为任何Ant项目提供了深入的导入,在运行时将Ant目标转换为本地Gradle任务。您可以从Gradle中依赖它们,您可以从Gradle中增强它们,甚至可以在build.xml中声明对Gradle任务的依赖关系。为属性,路径等提供了相同的集成。

Gradle完全支持现有的Maven或Ivy存储库基础结构,用于发布和检索依赖关系。Gradle还提供了一个将Maven pom.xml转换为Gradle脚本的转换器。Maven项目的运行时导入即将到来。

  • 易于迁移
    Gradle可以适应任何你有的结构。因此,您可以始终在您的生产构建所在的同一分支中开发您的Gradle构建,并且可以并行演化。我们通常建议编写测试,确保产生的文物是相似的。这样迁移就不那么具有破坏性和可靠性。这是遵循通过应用婴儿步骤进行重构的最佳实践。

  • Groovy的
    Gradle的构建脚本是用Groovy编写的,而不是XML。但是与其他方法不同,这不是简单地暴露动态语言的原始脚本功能。这只会导致维护建设非常困难。Gradle的整个设计都是作为一种语言来使用的,而不是一个僵化的框架。而Groovy是我们的胶水,可以让你用Gradle(或者你)提供的抽象来讲述你的个人故事。Gradle提供了一些标准的故事,但他们没有任何形式的特权。与其他声明式构建系统相比,这对我们来说是一个重要的特色。我们的Groovy支持不仅仅是糖衣。整个Gradle API是完全Groovy化的。添加Groovy会带来愉快和高效的体验。

  • Gradle包装
    Gradle Wrapper允许您在没有安装Gradle的机器上执行Gradle构建。这对于一些持续集成服务器来说是有用的。对于一个开源项目来说,保持构建它的屏障是很有用的。包装对于企业来说也很有意思。这是客户端机器的零管理方法。它还强制使用特定的Gradle版本,从而最大限度地减少支持问题。

  • 自由和开源
    Gradle是一个开源项目,并在ASL下获得许可。

2.2.为什么选择Groovy?

我们认为,在构建脚本中使用内部DSL(基于动态语言)优于XML的优点是巨大的。那里有几种动态语言。为什么选择Groovy?答案在于Gradle运行的环境。虽然Gradle是一个通用的构建工具,但它的主要焦点是Java项目。在这样的项目中,团队成员将非常熟悉Java。我们认为一个构建应该尽可能的透明给所有的团队成员。

在这种情况下,您可能会争论为什么我们不只是使用Java作为构建脚本的语言。我们认为这是一个有效的问题。它会为你的团队提供最高的透明度和最低的学习曲线,但是由于Java的限制,这样的构建语言将不会像表面上那么好,而且功能强大。[1]像Python,Groovy或Ruby这样的语言在这里做得更好。我们选择了Groovy,因为它为Java人提供了最大的透明度。它的基本语法和Java以及它的类型系统,它的包结构和其他东西一样。除此之外,Groovy还提供了更多的功能,但是却拥有Java的通用基础。

对于具有Python或Ruby知识的Java开发人员或希望了解这些知识的人,上述论点不适用。Gradle设计非常适合在JRuby或Jython中创建另一个构建脚本引擎。目前对我们来说,这并不是最重要的。我们高兴地支持任何社区努力创建额外的构建脚本引擎。

[1]在http://www.defmacro.org/ramblings/lisp.html,你会发现一篇比较有趣的文章,比较Ant,XML,Java和Lisp。有趣的是,如果本文中的“如果Java有这种语法”语法实际上就是Groovy语法。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容