android自定義gradle插件并且發(fā)布到本地倉(cāng)庫(kù)詳細(xì)教程
一、在工程上新建一個(gè)Module。
二、刪除其余不必要的文件,最終目錄結(jié)構(gòu)如下:

注意:由于我用的是kotlin語(yǔ)言,所以用的是java目錄,java語(yǔ)言也是用java目錄,如果用的是groovy語(yǔ)言,那么就用groovy目錄。
src/main/resources/META-INF/gradle-plugins目錄下定義插件聲明,*.properties文件的文件名就是插件名稱(chēng)比如

而文件的內(nèi)容implementation-class后面跟著的是插件類(lèi)的全類(lèi)名。
三、module的gradle引入相關(guān)的依賴(lài)以及插件
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'kotlin'
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
google()
jcenter()
mavenLocal()
}
dependencies {
implementation gradleApi()
implementation localGroovy()
implementation "commons-io:commons-io:2.6"
implementation 'com.android.tools.build:gradle:4.0.1'
implementation 'com.android.tools.build:gradle-api:4.0.1'
implementation 'org.ow2.asm:asm:7.1'
implementation 'org.ow2.asm:asm-util:7.1'
implementation 'org.ow2.asm:asm-commons:7.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.32"
}
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = 'com.plugin'
pom.artifactId = 'double-click'
pom.version = '1.0.26'
//發(fā)布到本地倉(cāng)庫(kù)
repository(url: uri('../repo'))
}
}
}
由于我需要用到asm與transform相關(guān)的api,所以引入了相關(guān)的依賴(lài)。
四、編寫(xiě)插件代碼,此處不展開(kāi)說(shuō)了。
五、發(fā)布到本地倉(cāng)庫(kù):
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = 'com.xxx.plugin'
pom.artifactId = 'double-click'
pom.version = '1.0.26'
//發(fā)布到本地倉(cāng)庫(kù)
repository(url: uri('../repo'))
}
}
}pom.groupId:groundId自己定義,一般為包名 pom.artifactId:artifactId自己定義 pom.version:版本號(hào) repository(url: uri('../repo')):倉(cāng)庫(kù)地址,為本地項(xiàng)目的repo文件夾,注意../不要寫(xiě)錯(cuò),這是代表gradle所在目錄的上一層目錄。
六、引用
1、項(xiàng)目的app.gradle里引入插件:
apply plugin: 'com.xxxx.double-click'
該名稱(chēng)為第二部里面所講的插件名稱(chēng)。
2、project.gradle中引入地址:
buildscript {
ext.kotlin_version = "1.4.32"
repositories {
google()
jcenter()
maven {
//配置本地插件目錄
url uri('./repo')
}
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.3"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
classpath "com.xxxxx.plugin:double-click:1.0.26"
}
}這里主要有兩部分:(1)配置本地插件所在的目錄,注意要與發(fā)布到本地倉(cāng)庫(kù)時(shí)候?qū)懙牡刂穼?duì)應(yīng)上。
maven {
//配置本地插件目錄
url uri('./repo')
}(2)聲明,寫(xiě)法就是發(fā)送到本地倉(cāng)庫(kù)時(shí)候所寫(xiě)的groupId:artifactId:version
classpath "com.xxxxx.plugin:double-click:1.0.26"
到此這篇關(guān)于android自定義gradle插件并且發(fā)布到本地倉(cāng)庫(kù)詳細(xì)教程的文章就介紹到這了,更多相關(guān)android自定義gradle插件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- AndroidStudio 使用過(guò)程中出現(xiàn)的異常(Gradle sync failed)處理辦法
- Android studio gradle環(huán)境變量配置教程
- android studio 一直卡在Gradle:Build Running的幾種解決辦法
- 詳解關(guān)于A(yíng)ndroid Studio中安裝和gradle的一些坑
- 史上最全的Android build.gradle配置教程
- Android報(bào)錯(cuò)Error:Could not find com.android.tools.build:gradle:4.1解決辦法
- Android Studio3.6設(shè)置Gradle Offline Mode的方法
- 詳解AndroidStudio JNI +Gradle3.0以上JNI爬坑之旅
- Android Gradle依賴(lài)管理、去除重復(fù)依賴(lài)、忽略的方式
- Android使用Gradle依賴(lài)配置compile、implementation與api的區(qū)別介紹
相關(guān)文章
Android實(shí)現(xiàn)城市選擇三級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)城市選擇三級(jí)聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
詳解Android系統(tǒng)啟動(dòng)過(guò)程
這篇文章主要介紹了Android系統(tǒng)啟動(dòng)過(guò)程的相關(guān)資料,幫助大家更好得理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03
Fiddler實(shí)現(xiàn)手機(jī)抓包之小白入門(mén)必看
這篇文章主要介紹了Fiddler實(shí)現(xiàn)手機(jī)抓包之小白入門(mén)必看篇,需要的朋友可以參考下2018-03-03
Android 逐幀動(dòng)畫(huà)創(chuàng)建實(shí)例詳解
這篇文章主要介紹了Android 逐幀動(dòng)畫(huà)創(chuàng)建實(shí)例詳解的相關(guān)資料,這里主要說(shuō)明Android 動(dòng)畫(huà)的創(chuàng)建及使用方法,希望通過(guò)此文能幫助到大家,需要的朋友可以參考下2017-08-08
解決Android Studio突然不顯示logcat日志的問(wèn)題
這篇文章主要介紹了解決Android Studio突然不顯示logcat日志的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Android中自定義View實(shí)現(xiàn)圓環(huán)等待及相關(guān)的音量調(diào)節(jié)效果
這篇文章主要介紹了Android中自定義View實(shí)現(xiàn)圓環(huán)等待及相關(guān)的音量調(diào)節(jié)效果,邏輯非常簡(jiǎn)單,或許繪圖方面更加繁瑣XD 需要的朋友可以參考下2016-04-04
Android實(shí)現(xiàn)搜索功能并本地保存搜索歷史記錄
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)搜索功能,并實(shí)現(xiàn)本地保存搜索歷史記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03
Android中使用PagerSlidingTabStrip實(shí)現(xiàn)導(dǎo)航標(biāo)題的示例
本篇文章主要介紹了Android中使用PagerSlidingTabStrip實(shí)現(xiàn)導(dǎo)航標(biāo)題的示例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01

