Skip to content

Latest commit

 

History

History
16 lines (10 loc) · 1.75 KB

Chapter 02. Overview.md

File metadata and controls

16 lines (10 loc) · 1.75 KB

Chapter 2. 概览

大致介绍了Gradle的一些重要特性。列其中几个比较重要并且有意思的如下:

  • 声明式,约定优于配置

    gradle使用类似于声明式的语法来写配置文件。并且每个声明项都有约定的默认值。这意味着配置文件可以非常精练(对比冗长的ant)。同时“配置”实际上是脚本,这使得gradle非常灵活,几乎可以随时随地写groovy语句(对比死板的maven)。

  • Groovy

    无论如何都值得再次强调Groovy的重要性。当Gradle提供的默认的功能已经够用的时候,你是在写简洁的声明式配置文件。当默认功能无法满足你的独特需求的时候,随时告诉自己,声明都是假象,这是脚本。如果你在ant脚本里用xml语法写过丑陋的逻辑代码,会觉得写真正的脚本代码简直就是在天堂。

  • Gradle Wrapper

    很多时候每个人电脑上的Gradle环境略有不同,可能导致脚本运行结果有细微差异。甚至有些人根本没安装脚本并配置环境。Gradle提供一种wrapper机制,在工程目录下会有两个gradlew文件(分别对应win/mac+linux),并有gradle/wrapper子目录,其实就是让工程自带gradle环境。这样就保证了所有成员使用统一的编译环境。
    曾经我以为这是个很方便的特性,但后来发现真正使用wrapper的话会在这个子目录里下载一份重达50M左右的gradle拷贝,这上传到svn简直就是罪孽。并且项目组中每个人安装并配置一份gradle还可以带来任意位置命令行、供AS使用等好处。后来放弃了。但不得不说,在复杂的环境下这个机制还是非常有用的,毕竟对大工程来说,任何一丝环境变更都是一次探险。