& 160;& 160;& 160;& 160; "上一篇隨筆" 介紹瞭如何使用Gradle內建任務,介紹了自定義Gradle任務類的三種方法(build文件,buildSrc文件夾、新建groovy項目),一個任務是一個原子操作,即不可分割的。項目開發過程中,我們往往需要按照一定順序執行多個任務以
上一篇隨筆介紹瞭如何使用Gradle內建任務,介紹了自定義Gradle任務類的三種方法(build文件,buildSrc文件夾、新建groovy項目),一個任務是一個原子操作,即不可分割的。項目開發過程中,我們往往需要按照一定順序執行多個任務以完成某個特定功能(例如build、clean),多個任務及其屬性、配置的集合稱之為一個plugin
Gradle提供了2種類型的插件,腳本插件
(script plugin)和二進位插件
(binary plugin)。Gradle擁有十分豐富的插件,僅掌握其中幾個就能夠極大地提升工作效率,這篇文章將介紹Gradle的2種插件的導入方法及項目開發中極為常用的java plugin
如有錯誤,請不吝指出,非常感謝;如果本文對你有幫助,右下角點個推薦吧~
1.導入插件
1.1 腳本插件(script plugin)
一個腳本插件可以視作一個Gradle文件,可以在其他文件中導入,相當於多個類的模塊化,下麵是個非常簡單的例子
// ~/Test/helloplugin.gradle
task helloTask << {
println 'I Am Called !'
}
// ~/Test/build.gradle
apply from: 'helloplugin.gradle'
task mainTask << {
println 'I am ' + name
}
執行結果如下
C:\Users\gzd\Desktop\Test>gradle hT mT
:helloTask
I Am Called !
:mainTask
I am mainTask
1.2 二進位插件(binary plugin)
腳本如果如果經過編譯,那麼就可以稱之為二進位插件,例如上一篇博客新建groovy項目編譯形成的 HelloTask-1.0.jar,二進位插件可以理解為提供介面的類的集合,二進位插件可復用性更強
// 導入 java插件
// apply plugin: '<pluginid>'
apply plugin: 'java'
// 如果已經使用import導入了相關類
// 可使用 apply <Class> 例如 apply HelloTask
- java是Gradle的核心插件,是內置的,內置插件不需要配置依賴路徑
Gradle 內置的插件包含:
(1) 編譯、測試插件(Java、Groovy、Scala、War 等)
(2) 代碼分析插件(Checkstyle、FindBugs、Sonar 等)
(3) IDE插件(Eclipse、IDEA等)
如果引入第三方插件,那麼就需要配置依賴路徑了,例子可參考Gradle之定製任務最後一部分
buildscript {
repositories { ... }
dependencies { ... }
}
2. Java plugin 使用方法
Java plugin是Gradle核心API的一部分,Java plugin插件提供了一系列的任務支持構建、編譯、測試Java項目。
2.1 導入java plugin
// ~/Test/build.gradle
// 導入java插件
// jcenter()是一個插件倉庫,導入的插件將會在倉庫中尋找並下載
buildscript {
repositories { jcenter() }
}
apply plugin: 'java'
在Test/下(即build.gradle)所在的目錄執行 gradle tasks --all
將會列出java插件支持的所有任務
例如我們所熟悉的 gradle build、gradle clean
C:\Users\gzd\Desktop\Test>gradle tasks --all
:tasks
...
Build tasks
-----------
build - Assembles and tests this project.
clean - Deletes the build directory.
Rules
-----
Pattern: clean<TaskName>
Pattern: build<ConfigurationName>
Pattern: upload<ConfigurationName>
2.2 查看預設配置
執行gradle dJPC,將列印java插件的預設配置
C:\Users\gzd\Desktop\Test>gradle dJPC
:dislpayJavaPluginConvention
Lib Dir: C:\Users\gzd\Desktop\Test\build\libs
Lib Dir Name:libs
Sources Code Dir[source set 'main', source set 'test']
Production Code Dir[C:\Users\gzd\Desktop\Test\src\main\java]
- 這個任務能夠讓我們知道java插件的預設配置,更完整的信息可以查看Gradle官方文檔
- 例如Production Code Dir,我們只需要將代碼寫在 src/main/java目錄下,執行gradle build,編譯時Gradle將自動尋找該目錄下的java代碼進行編譯,這和Eclipse自動生成的目錄十分地相似,在這裡我們只是手動做了IDE做的事情
2.3 覆蓋預設配置
// 我們可以在build.gradle中覆蓋其預設配置
libsDir = 'buildFolder'
libsDirName = 'libfolder'
sourceSets {
main {
java {
srcDir 'src/maincode/java'
}
resources {
srcDir 'src/maincode/resources'
}
}
test {
// 省略測試配置...
}
}
- 上述代碼就將java插件預設的路徑更改了,有時我們復用別人的項目時,目錄結構不一致,此時通過更改java插件預設配置能夠節省大量的時間。
- 關於java plugin 更多完整的屬性和用法可以查看官方文檔
3.寫在最後
- 關於Gradle Task 基礎可以參考Java Gradle之簡介、安裝與任務管理與Java Gradle之內建與定製任務類
- 從這篇隨筆開始,我們以導入java plugin開頭,將依次介紹Gradle中常使用的各種插件。
- 感謝大家關註&留言~