gradle 簡單介紹
gradle 安裝
和 maven 的安裝類似,解壓設定GRADLE_HOME即可。
gradle 核心——project & task
Gradle 裡的幾乎任何東西都是基于兩個基礎概念:project & task。
Gradle 中所有執行的事件都是借由 Task 執行的。
對于一個Gradle工程,根目錄執行:
gradle tasks -q
,
-q
表示忽略gradle本身的log資訊,加上這個參數可以屏蔽很多無關的輸出。
通常會給task附帶一些執行動作,稱之為Action。
也可以附帶一個閉包配置,稱之為Configuration,閉包中不僅可用做指派操作,也可以執行一些自動執行的配置。
Task依賴。
task xxx << {
}
這樣的文法等價于
task xxx
xxx.dolast {
}
關于project:
目錄:
重要檔案:
setting.gradle檔案
build.gradle 類似于pom.xml
一個父工程 project 可以包含多個子工程 child-project,一般一個工程一個 build.gradle 檔案。父工程的 build.gradle 統一管理子工程的build.gradle。
Gardle v.s. Maven
優勢:基于 groovy 的簡潔文法;
groovy task 比 maven plugin 靈活友善;
互相轉化
下面的方法可以把gradle轉成maven項目,前提是gradle項目目錄結構保持跟maven一樣的約定,即/src/main/java。
gradle --> maven
在build.gradle中增加以下内容(group,version可自行修改,artifactId預設為目錄名稱)
apply plugin: 'java'
apply plugin: 'maven'
group = 'com.101tec'
version = '0.7-dev'
sourceCompatibility = 1.8
task writeNewPom << {
pom {
project {
inceptionYear '2018'
licenses {
license {
}
}
}
}.writeTo("$buildDir/pom.xml")
}