Gradle自動構建系列之-五 Gradle插件

插件分類

Gradle插件分爲二進制插件和腳步插件

二進制插進:實現了org.gradle.api.Plugin接口的插件,插件可以有plugin ID(是唯一的,plugin id是插件的別名),Gradle自帶的核心插件都有一個plugin id

插件作用

當把插件應用到項目,插件會擴展項gr目功能,幫助在項目構建過程中做許多事情:

  1. 可以添加任務到項目,幫你完成測試、編譯、打包等
  2. 可以添加項目構建過程中需要的依賴配置到項目,比如編譯時依賴的第三方庫等;
  3. 可以向項目中現有的對象類型添加新的擴展屬性、方法等,比如Android{}配置塊就是Android Gradle插件爲Project對象添加的一個擴展
  4. 對項目進行約定,比如應用Java插件,約定src/main/java目錄下爲源代碼,編譯的時候也編譯這個目錄下的java源代碼文件

如何應用插件到項目

插件的應用都是通過project.apply(Map

1、應用二進制插件

//’java’就是java插件的plugin ID

*方式一:***apply plugin:’java’

//org.gradle.api.plugins.JavaPlugin是Java插件的類型

*方式二:***apply plugin:’org.gradle.api.plugins.JavaPlugin’

//由於org.gradle.api.plugins包是自動導入的

*方式三:***apply:’JavaPlugin’

方式一最常見,完整的插件類型寫法一般適用於我們在build文件中自定義的插件,也就是腳步插件;

2、應用腳本插件

腳本插件就是一個腳本,應用腳本插件就是把這個腳本加載進來,和二進制插件不同的是腳本插件使用的是from關鍵字,後面緊跟的是一個腳本文件,可以使本地的,也可以使網絡的(網絡的要使用HTTP URL) 形如:apply from:…

腳本插件雖然不是真正的插件,但他是腳本文件模塊化的基礎;我們可以將龐大的腳本文件進行分塊、分段整理拆分爲一個個單一職責的的文件,然後使用apply from來引用這些腳本文件,比如:將常用函數都放在utils.gradle文件中,供其他腳本文件引用

Project.apply()方法的另外兩種形式

1、apply(Closure closure)

apply{

    plugin 'java'
}

該閉包用來配置一個ObjectConfigurationAction對象,在閉包中可以使用該對象的方法、屬性等進行配置;效果和apply plugin:’java’一樣

2、apply(Action

應用第三方發佈的插件

第三方發佈的作爲jar的二進制插件,在應用是,必須先在buildscript{}裏配置其classpath才能使用,這點不像Gradle提供的內置插件。比如Android Gradle插件,就屬於Android發佈的第三方插件,需要先配置:

buildscript{

    dependencies{
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
}

buildscript{}塊是一個在構建項目之前,爲項目進行前期準備和初始化相關配置依賴的地方,配置好所需依賴,就可以應用插件了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章