[TOC]

Gradle是一個(gè)基于Apache Ant和Apache Maven概念的項(xiàng)目自動(dòng)化構(gòu)建工具。它使用一種基于Groovy的特定領(lǐng)域語(yǔ)言(DSL)來聲明項(xiàng)目設(shè)置,拋棄了基于XML的各種繁瑣配置。Gradle的構(gòu)建腳本build.gradle和setting.gradle都是可執(zhí)行的Groovy腳本(不過它們不可以在Groovy運(yùn)行時(shí)環(huán)境下運(yùn)行, 由于上述.gradle文件都需要調(diào)用gradle的api運(yùn)行且后綴不是.groovy). 下面通過與Java對(duì)比, 簡(jiǎn)單介紹小于Gradle相關(guān)的Groovy語(yǔ)言知識(shí).

?

1. 什么是Groovy

Groovy是一個(gè)基于Java虛擬機(jī)的動(dòng)態(tài)語(yǔ)言。這門動(dòng)態(tài)語(yǔ)言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺(tái)的腳本語(yǔ)言使用。Groovy的語(yǔ)法與Java非常相似,以至于多數(shù)的Java代碼也是正確的Groovy代碼.

  1. Java開發(fā)者提供了 現(xiàn)代最流行的編程語(yǔ)言特性,而且學(xué)習(xí)成本很低。

  2. 支持DSL(Domain Specific Languages領(lǐng)域定義語(yǔ)言)和其它簡(jiǎn)潔的語(yǔ)法,讓你的代碼變得易于閱讀和維護(hù).

  3. 無縫集成所有已經(jīng)存在的 Java對(duì)象和類庫(kù).

  4. 接編譯成Java字節(jié)碼,這樣可以在任何使用Java的地方 使用Groovy。

?

2. Java VS Groovy

下面先給出Groovy運(yùn)行環(huán)境下含義相同的Java和Groovy
代碼片, 然后在說明二者的區(qū)別

java

public class Me {    private String name; 
    public Me(String name) { this.name = name; }    public String getName() { return name; }    public void setName(String name) { this.name = name; }
}

groovy