博客逐步遷移至 極客兔兔的小站html
上一篇隨筆介紹瞭如何使用Gradle內建任務,介紹了自定義Gradle任務類的三種方法(build文件,buildSrc文件夾、新建groovy項目),一個任務是一個原子操做,即不可分割的。項目開發過程當中,咱們每每須要按照必定順序執行多個任務以完成某個特定功能(例如build、clean),多個任務及其屬性、配置的集合稱之爲一個plugin
java
Gradle提供了2種類型的插件,腳本插件
(script plugin)和二進制插件
(binary plugin)。Gradle擁有十分豐富的插件,僅掌握其中幾個就可以極大地提高工做效率,這篇文章將介紹Gradle的2種插件的導入方法及項目開發中極爲經常使用的java plugin
app
若有錯誤,請不吝指出,很是感謝;若是本文對你有幫助,右下角點個推薦吧~ide
一個腳本插件能夠視做一個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
腳本若是若是通過編譯,那麼就能夠稱之爲二進制插件,例如上一篇博客新建groovy項目編譯造成的 HelloTask-1.0.jar,二進制插件能夠理解爲提供接口的類的集合,二進制插件可複用性更強測試
// 導入 java插件 // apply plugin: '<pluginid>' apply plugin: 'java' // 若是已經使用import導入了相關類 // 可以使用 apply <Class> 例如 apply HelloTask
Gradle 內置的插件包含:gradle
(1) 編譯、測試插件(Java、Groovy、Scala、War 等)
(2) 代碼分析插件(Checkstyle、FindBugs、Sonar 等)
(3) IDE插件(Eclipse、IDEA等)ui
若是引入第三方插件,那麼就須要配置依賴路徑了,例子可參考Gradle之定製任務最後一部分this
buildscript { repositories { ... } dependencies { ... } }
Java plugin是Gradle核心API的一部分,Java plugin插件提供了一系列的任務支持構建、編譯、測試Java項目。插件
// ~/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>
執行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]
// 咱們能夠在build.gradle中覆蓋其默認配置 libsDir = 'buildFolder' libsDirName = 'libfolder' sourceSets { main { java { srcDir 'src/maincode/java' } resources { srcDir 'src/maincode/resources' } } test { // 省略測試配置... } }