Gradle 筆記
此文為本人學習筆記,不保證正確性。。如有紕漏,還請指正。
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 筆記