Gradle 的一切都是基於項目和任務的。git
構建由一個或多個項目組成。項目的概念很抽象,它取決於你要用Gradle 作什麼 。項目能夠是 一個 Jar 庫或者一個 web 程序。也能夠是一個 zip 壓縮包,也能夠是將項目部署到生產環境等等;web
一個項目是由一個或多個任務組成的;任務是構建工做的原子單位,最小的工做單元。例如:編譯字節碼,建立 jar 。api
建立一個簡單的任務,輸出 Hello World!.bash
Groovyapp
task hello{
doLast {
println 'Hello World.'
}
}
複製代碼
Kotlingradle
tasks.register("hello"){
doLast {
println ("Hello World.")
}
}
複製代碼
輸入命令 運行該任務ui
gradle hello
複製代碼
新建一個目錄spa
使用 init 命令建立構建項目插件
Gradle 如今支持兩種--Kotlin DSL 和 Groovy DSL .默認是 基於Groovy的,若是要使用 Kotlin 能夠 使用 --dsl kotlin
3d
gradle init --dsl kotlin
複製代碼
會生成以下目錄
其中 .gitigonre 是 git 忽略文件;.gradle 是 gradle 的一些信息。
須要咱們關注的是下面這些文件
├── cradle │ └── wrapper │ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── build.gradle.kts
├── gradlew
├── gradlew.bat └── settings.gradle.kts
Gradle提供了經過Groovy或基於kotlin的DSL建立和配置任務的api。項目包含一組任務,每一個任務執行一些基本操做。
Gradle提供了一個任務庫,咱們能夠在本身的項目中配置這些任務。例如,有一個核心類型的 Copy 任務,它能夠複製文件。 下面咱們就配置這個 任務來使用一下。
建立一個目錄 src 在 src 下建立一個文件名稱任意,例如 myFile.txt。添加任意內容,例如 Hello World! 在 配置腳本(build.gradle.kts) 添加 一個 Copy 類型的 copy 任務,從 src 目錄複製到 dest 目錄
Gradle 在執行時會自動建立 dest 目錄。
Kotlin
tasks.register<Copy>("copy"){
description = "Copies sources to the dest directory"
group = "Custom"
from("src")
into("dest")
}
複製代碼
Groovy
task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
from "src"
into "dest"
}
複製代碼
description 和 group 都是可選的,能夠隨便你定義;也是能夠省略的;
執行 copy 任務
gradle copy
複製代碼
檢查裏面的 myFile.txt 是否複製完成。
Gradle 提供了大量的插件,在 Gradle 插件站 能夠查到
今天使用 一個 base 插件 結合它的核心類型 Zip 任務,實現打包壓縮包的任務。
使用 base 插件
Kotlin
plugins {
id("base")
}
... rest of the build file ...
複製代碼
Groovy
plugins {
id "base"
}
... rest of the build file ...
複製代碼
建立一個 zip 任務,擴展自 核心類型 Zip
Kotlin
tasks.create<Zip>("zip") {
description = "Archives sources in a zip file"
group = "Archive"
from("src")
setArchiveName("basic-demo-1.0.zip")
}
複製代碼
Groovy
task zip(type: Zip, group: "Archive", description: "Archives sources in a zip file") {
from "src"
setArchiveName "basic-demo-1.0.zip"
}
複製代碼
執行 zip
gradle zip
複製代碼
至此,一個簡單的構建完成了。
Gradle 提供了一個基於 web的構建視圖——構建掃描
在執行時 使用 --scan 選項或者明確使用構建掃描插件均可以避免費的在 scans.gradle.com 建立一個掃描視圖分析
gradle zip --scan
複製代碼
在同一服務條款後會直接發送到 構建掃描的平臺,複製下面的鏈接打開便可。
打開以後會有詳細的項目構建分析
End