1. 程式人生 > >Gradle 筆記

Gradle 筆記

可能 doc 哲學 這樣的 config PE 說明 此外 等等

此文為本人學習筆記,不保證正確性。。如有紕漏,還請指正。

Maven 的配置太啰嗦了,因此想用 Gradle,可不仔細學學的話,用 Gradle 也只會復制粘貼。。
於是註冊了 Udacity 的 Gradle 課程: 用 Gradle 構建 Android 和 Java.

Gradle 基礎

關於如何加速下載、如何配置環境變量,就略過了。

首先需要了解一個基礎的 Gradle 項目的構成。在任意一個文件夾中執行gradle init,都會生成下列文件:

.
├── build.gradle  # 當前 Project 的構建腳本
├── gradle
│   └── wrapper                 # Project 特定的 Gradle,這樣不同項目可使用不同版本的 Gradle。
│       ├── gradle-wrapper.jar         #    Gradle Wrapper executable JAR
│       └── gradle-wrapper.properties  # Gradle Wrapper configuration properties
├── gradlew  
├── gradlew.bat  # 這兩個 shell 腳本,分別是 Unix* 和 Windows 系統上的 Wrapper 執行腳本。
└── settings.gradle  # 配置腳本,用於說明哪些項目參與構建

一般構建,都推薦使用上面標明的 shell 腳本執行。該腳本使用的是項目獨立的 gradle wrapper,可以保證不會因為 gradle 版本問題而構建失敗。

此外,如果有經常會變動的屬性,或者是敏感信息,(比如安卓app簽名密鑰庫的密碼)可以單獨保存到gradle.properties文件中,然後在 build.gradle 中使用該屬性。(在開源項目中可能會用到)

插件

學了 Gradle基礎部分 後,能理解 Gradle 提供了 Task 這樣一個抽象層次,我們可以在這個層次上寫我們的 Tasks 來構建任何東西。
Gradle 用得最廣泛的是在 Java 和 Android 項目上,可這樣的項目一般都比較復雜,即使 Gradle 已經提供了很多基礎功能,直接從零開始寫 build.gradle 仍然會顯得很困難。
實際上,Java 項目或者 Android 項目,它們的構建任務,很大部分都是通用的。比如編譯、打包、測試等等。因此 Gradle 官方提供了很多有用的插件,這些插件預置了很多通用的 Task 和 Task Types、DSL元素等。使用這些預定義的 Task,構建就顯得簡單多了。

插件,可以把它類比成 Java 的父類,你的 build.gradle 便相當於插件的子類。

Gradle 插件繼承了 Maven 約定優於配置 的哲學,在默認情況下,執行各種任務時會默認你的項目使用標準結構。當然如有需要,你也可以自定義。

Java 插件

關於使用 Gradle 構建 Java 項目,已經有了很好的官方文檔:tutorial for java projects 和 tutorial for java web projects.

依賴管理

待續。。。

測試

打包到 jar

多項目的構建

Gradle 筆記