## 2.1\. Features 特性
下面列出了一些 Gradle 的特性:
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#declarative-builds-and-build-by-convention聲明式構建符合公約)Declarative builds and build-by-convention聲明式構建,符合公約
gradle 的核心是在 基于 Groovy 對 Domain Specific Language (DSL)語言進行一個豐富的擴展。根據喜好,Gradle 將陳述建立下一級提供聲明性語言元素。這些元素也提供支持 Java,Groovy,OSGi,Web和Scala 項目。甚至更多,這說明語言是可擴展的。添加您自己的新語言元素或加強現有的,從而提供了簡潔,易于維護和易于理解的構建
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#language-for-dependency-based-programming-依賴型編程語言)Language for dependency based programming 依賴型編程語言
聲明式語言位于一個通用的任務圖,你可以充分利用你的建立。它提供了適應您的獨特需求的最大靈活性的工具。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#structure-your-build-良好的結構)Structure your build 良好的結構
工具的柔軟性和豐富性允許您用一般性設計原則來構建項目。你可以創建一個結構良好,易于維護,易于理解的建立。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#deep-api-深層次的api)Deep API 深層次的API
工具允許您監視和自定義配置和執行行為
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#gradle-scales-可伸縮)Gradle scales 可伸縮
Gradle 伸縮性能非常好。它會增加你的生產力,從簡單的單項目到建立龐大的企業多項目建設。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#multi-project-builds多項目構建)Multi-project builds 多項目構建
Gradle支持多項目建設非常突出。項目依賴是一等公民。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#gradle-is-the-first-build-integration-toolgradle是第一個建立的集成工具)Gradle is the first build integration tool Gradle是第一個建立的集成工具
Ant 任務是一等公民。更有趣的是,Ant 的項目也都是一等公民。Gradle 提供深入的引用給 Ant 項目,在運行時,可以轉換 Ant 目標到 原生的Gradle 任務。你可以依靠他們的工具,可以提高他們的工具,你甚至可以在build.xml 宣布對 Gradle 任務的依賴。相同的集成提供了性能,路徑,等…
Gradle 支持現有的 Maven 或 Ivy 倉庫依賴關系。工具還提供了一個轉換器將 Maven pom.xml 轉成 Gradle 腳本。Maven 項目運行的進口就快來了。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#ease-of-migration-易遷移)Ease of migration 易遷移
Gradle 可以適應任何已有的結構。我們通常建議寫測試,確保與生產環境類似。這樣的遷移是更少的破壞性和盡可能的可靠。這是繼重構應用小步驟的最佳實踐。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#groovy-語言)Groovy 語言
工具的構建腳本是用 Groovy,不是XML。但是,不像其他的方法,這不是簡單地將動態語言的原始腳本進行能力的擴展。這只會導致一個保持非常困難的構建。工具的總體設計是面向的是將 Gradle 作為一種語言,而不是一個嚴格的框架。工具提供了一些標準的故事,但他們不做任何形式的限制。這是我們的一個主要特點。
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#the-gradle-wrapper-關于gradle的包裝)The Gradle wrapper 關于Gradle的包裝
該Gradle包裝允許你機器上沒有安裝Gradle工具也能執行 Gradle 的構建
### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#free-and-open-source-免費開源)Free and open source 免費開源
遵守[ASL](http://www.gradle.org/license)開源協議
## [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2002.%20Overview%20%E6%80%BB%E8%A7%88.md#22-why-groovy-為啥用-groovy)2.2\. Why Groovy? 為啥用 Groovy
我們認為,當使用構建腳本作為內部 DSL (基于動態語言)比 XML 有更大的優勢。有很多動態語言,但為啥是 Groovy?答案是在于上下文工具的操作。雖然 Gradle 是一個通用的構建工具,這是它的核心,但它的主要焦點還是是 Java 項目。在這樣的項目中,團隊成員更加熟悉 Java。我們考慮的是編譯應該都所有成員來說是竟可能的透明。
你可能會說,為什么不使用 Java 作為構建腳本。這里有一個問題,就是對于團隊的最高的透明度和最低的學習曲線,但是 由于 Java 語言的限制,作為構建語言效果并不理想(參考?[http://www.defmacro.org/ramblings/lisp.html?](http://www.defmacro.org/ramblings/lisp.html)可以看到 Ant, XML, Java 和 Lisp 的對比,有趣的是,Java 的語法實際上是 Groovy 的語法。)。其他語言, Python, Groovy 或者 Ruby 都更能勝任這個工作。我們選擇 Groovy 是因為對于 Java 使用者來說有更高的透明度。它的基本語法與 Java 類似,包括 本文系統,包結構和其他方面。Groovy 提供了最重要內容但都是符合 Java 基礎功能的。
對于對 Python 或 Ruby 知識擁有強烈的學習欲望的 Java 開發者來說,上述論點不適用。該工具的設計非常適合于創建另一個建立在 JRuby 和Jython 腳本引擎。對于我們來說暫時它只是不具有最高優先級。我們高興地支持任何社區的努力來創建額外的構建腳本引擎。
- 關于
- 第1章 Introduction 介紹
- 第2章 Overview 總覽
- 第3章 Tutorials 教程
- 第4章 Installing Gradle 安裝
- 第5章 Troubleshooting 問題解決
- 第6章 Build Script Basics 構建腳本的基礎識
- 第7章 Java Quickstart 快速開始 Java
- 第8章 Dependency Management Basics 依賴管理的基礎知識
- 第9章 Groovy Quickstart 快速開始 Groovy
- 第10章 Web Application Quickstart 快速開始 Web 應用
- 第11章 Using the Gradle Command-Line 使用 Gradle 命令行
- 第12章 Using the Gradle Graphical User Interface 使用 Gradle 圖形化用戶界面
- 第13章 Writing Build Scripts 編寫構建腳本
- 第14章 Tutorial - 'This and That' 教程-這個那個
- 第15章 More about Tasks 更多關于任務
- 第16章 Working With Files 跟文件工作
- 第17章 Using Ant from Gradle 從 Gradle 使用 Ant
- 第18章 Logging 日志.md
- 第19章 The Gradle Daemon 守護進程
- 第20章 The Build Environment 構建環境
- 第21章 Gradle Plugins 插件
- 第22章 Standard Gradle plugins 標準 Gradle 插件
- 附錄E Existing IDE Support and how to cope without it 支持的 IDE 以及如何應對沒有它