android studio自定義Gradle插件趟坑之旅

什么是gradle插件?

比方說我們?nèi)我獯蜷_一個(gè)開源的android源碼 都能在build.gradle中看到如圖所示的代碼

image.png

這些apply plugin后面跟著的就是所謂的gradle插件

gradle插件有什么用?

一開始只是為了方便編譯使用,傳不同的參數(shù)編譯出不一樣的apk包,比如所謂的debug release包 混淆和未混淆的包等等。但是現(xiàn)在隨著越來越多的開源框架(尤其是跟插件化 組件化 熱修復(fù) 這種大型涉及到android編譯過程的框架)復(fù)雜度提高,越來越多的框架選擇自定義gradle plugin來完成對應(yīng)的需求。所以知曉甚至熟悉如何自定義gradle 插件就成為我們讀懂這些開源框架的必備技能之一

下面就簡單介紹一下自定義gradle plugin中遇到的哪些坑

首先要明確一下自定義gradle插件分為兩種

第一種:只給自己project下使用的插件。無需上傳maven。

這種情況,我們在心間module的時(shí)候一定要取名為

image.png
image.png

否則as是不認(rèn)的!

然后project的settings.gradle中 不要加: 例如:

image.png

注意看buildSrc 前面是沒有冒號的

最后就是下目錄結(jié)構(gòu):

image.png

注意只有src和build.gradle 是我們編輯的 其他都是編譯以后自動生成的。目錄結(jié)構(gòu)注意不要搞錯。

這種只給自己project下使用的gradle插件編寫方式非常適合自學(xué),但是最終我們都要提供出去給別人
使用的對吧。

第二種:上傳到maven的gradle 插件。

上傳到maven的gradle 插件名字就可以隨便寫了,不像前面那種必須寫死成buildSrc 這個(gè)名字。
這是這兩者最大的區(qū)別。然后因?yàn)橐蟼鞯絤aven所以我們的build.gradle自然也要修改
`apply plugin: 'groovy'
apply plugin: 'maven'

group='com.example.wuyue'
version='4.0.0'

dependencies {
compile gradleApi() //gradle sdk
compile localGroovy() //groovy sdk
}

repositories {
mavenCentral()
}

uploadArchives {
repositories {
mavenDeployer {
repository(url: uri('D:/repos'))
}
}
} `

可以看出來我們這里上傳到的是本地maven倉庫,注意group和version的值

然后在我們要使用這個(gè)插件的地方 也是在build.gradle中加入:

image.png

即可。注意classpath格式不要寫錯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容