溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Gradle中怎么自定義插件

發(fā)布時(shí)間:2021-08-12 16:18:50 來(lái)源:億速云 閱讀:256 作者:Leah 欄目:大數(shù)據(jù)

Gradle中怎么自定義插件,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。


在Gradle中創(chuàng)建自定義插件,Gradle提供了三種方式:

  • 在build.gradle腳本中直接使用

  • 在buildSrc中使用

  • 在獨(dú)立Module中使用

開(kāi)發(fā)Gradle插件可以在IDEA中進(jìn)行開(kāi)發(fā),也可以在Android Studio中進(jìn)行開(kāi)發(fā),它們唯一的不同,就是IDEA提供了Gradle開(kāi)發(fā)的插件,比較方便創(chuàng)建文件和目錄,而Android Studio中,開(kāi)發(fā)者需要手動(dòng)創(chuàng)建(但實(shí)際上,這些目錄并不多,也不復(fù)雜,完全可以手動(dòng)創(chuàng)建,而且在AS中進(jìn)行創(chuàng)建有利于進(jìn)行插件依賴的調(diào)試和功能的完善)。

在build.gradle腳本中使用

在build.gradle腳本中使用是最簡(jiǎn)單的,但是只適應(yīng)于很簡(jiǎn)單的功能,也不便于其他地方應(yīng)用,如下面,可以直接寫在app moudle的build.gradle 里面,sync之后可在右側(cè)model對(duì)應(yīng)的other中查詢到MytestPlugin

Gradle中怎么自定義插件

根目錄下build.gradle

雙擊執(zhí)行,在android studio終端里就可以直接執(zhí)行此插件:

Gradle中怎么自定義插件

執(zhí)行之后的截圖

由于直接在build.gradle中進(jìn)行自定義比較簡(jiǎn)單,這里就不在進(jìn)行重點(diǎn)的講解

2

 在項(xiàng)目里使用


這里官網(wǎng)的描述 https://docs.gradle.org/4.0.2/userguide/organizing_build_logic.html#multiProjectBuildSrc
請(qǐng)參考(目前所暫時(shí)為最新的gradle4.0.2內(nèi)容,低版本也兼容此功能)

Gradle中怎么自定義插件


根據(jù)官網(wǎng)的描述,這里在項(xiàng)目中進(jìn)行使用的gradle插件過(guò)程如下:
首先在Android Studio中創(chuàng)建一個(gè)標(biāo)準(zhǔn)的Android項(xiàng)目,然后在項(xiàng)目的根目錄下新建一個(gè)model命名為buildSrc,這個(gè)目錄就用來(lái)存放自定義插件

     

我們對(duì)新建的model操作過(guò)程如下:


src/main 項(xiàng)目文件下:

  • 移除 java 文件夾,因?yàn)樵谶@個(gè)項(xiàng)目中用不到 java 代碼

  • 添加 groovy 文件夾,主要的代碼文件放在這里

  • 添加 resources 文件夾,存放用于標(biāo)識(shí) gradle 插件的 meta-data

  • 修改src/build.gradle配置內(nèi)容


下面是我的一個(gè)實(shí)際項(xiàng)目:

Gradle中怎么自定義插件

項(xiàng)目中使用gradle截圖


其中,除了buildSrc目錄以外,其他都是標(biāo)準(zhǔn)的Android目錄,而buildSrc就是Gradle提供的在項(xiàng)目中配置自定義插件的默認(rèn)目錄,開(kāi)發(fā)Gradle要?jiǎng)?chuàng)建的目錄,也就是RootProject/src/main/groovy和RootProject/src/main/resources兩個(gè)目錄。


1,創(chuàng)建buildSrc/build.gradle


首先,先來(lái)配置buildSrc目錄下的build.gradle文件,這個(gè)配置比較固定,使用官網(wǎng)示例,腳本如下所示:

Gradle中怎么自定義插件


2,創(chuàng)建Groovy腳本


接下來(lái),在groovy目錄下,創(chuàng)建一個(gè)Groovy類(與Java類似,可以帶包名,但Groovy類以.grovvy結(jié)尾,所以groovy文件的創(chuàng)建是new->file->custom.groovy),如圖所示:


Gradle中怎么自定義插件

其中MyPlugin為new出的新文件,全名為MyPlugin.groovy


在groovy下先創(chuàng)建了子目錄,這里類似于java 的package一樣,com/myPlugin 目錄,再創(chuàng)建MyPlugin.groovy文件:



   


注意:
groovy 文件夾中的類,一定要修改成 .groovy
后綴,IDE 才會(huì)正常識(shí)別。

這個(gè)插件創(chuàng)建了一個(gè)名為testPlugin的Task, 并在 task 中打印。插件是一個(gè)類,繼承自 org.gradle.api.Plugin接口,重載 void apply(Project project)方法,這個(gè)方法將會(huì)傳入使用這個(gè)插件的 project 的實(shí)例,這是一個(gè)重要的 context。

3,創(chuàng)建resources
resources目錄是標(biāo)識(shí)整個(gè)插件的目錄,其目錄下的結(jié)構(gòu)如下所示:


Gradle中怎么自定義插件


該目錄結(jié)構(gòu)與buildSrc一樣,是Gradle插件的默認(rèn)目錄,不能有任何修改。創(chuàng)建好這些目錄后,在gradle-plugins目錄下創(chuàng)建——插件名.properties文件,如上圖所示的: myCustomPlugin.properties文件
在該文件中,代碼如下所示:


implementation-class=com.myPlugin.MyPlugin


通過(guò)上面的代碼指定最開(kāi)始創(chuàng)建的Groovy類即可。


在主項(xiàng)目中使用插件


在主項(xiàng)目的build.gradle文件中,通過(guò)apply指令來(lái)加載自定義的插件,腳本如下所示:


apply plugin: 'myCustomGradle'


其中plugin的名字,就是前面創(chuàng)建myCustomPlugin.properties中的名字——myCustomPlugin,通過(guò)這種方式,就加載了自定義的插件。

配置完畢后,就可以在主項(xiàng)目中使用自定義的插件了,在終端執(zhí)行g(shù)radlew testPlugin指令或者在右側(cè)的gradle集成中查找,及app-other:testPlugin任務(wù)進(jìn)行雙擊,如圖:


Gradle中怎么自定義插件

plugin命令可點(diǎn)擊


結(jié)果如下所示:

Gradle中怎么自定義插件


看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI