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

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

而文件的內(nèi)容implementation-class后面跟著的是插件類的全類名。
三、module的gradle引入相關(guān)的依賴以及插件
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ā)布到本地倉庫
repository(url: uri('../repo'))
}
}
}
由于我需要用到asm與transform相關(guān)的api,所以引入了相關(guān)的依賴。
四、編寫插件代碼,此處不展開說了。
五、發(fā)布到本地倉庫:
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = 'com.xxx.plugin'
pom.artifactId = 'double-click'
pom.version = '1.0.26'
//發(fā)布到本地倉庫
repository(url: uri('../repo'))
}
}
}pom.groupId:groundId自己定義,一般為包名 pom.artifactId:artifactId自己定義 pom.version:版本號(hào) repository(url: uri('../repo')):倉庫地址,為本地項(xiàng)目的repo文件夾,注意../不要寫錯(cuò),這是代表gradle所在目錄的上一層目錄。
六、引用
1、項(xiàng)目的app.gradle里引入插件:
apply plugin: 'com.xxxx.double-click'
該名稱為第二部里面所講的插件名稱。
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ā)布到本地倉庫時(shí)候?qū)懙牡刂穼?duì)應(yīng)上。
maven {
//配置本地插件目錄
url uri('./repo')
}(2)聲明,寫法就是發(fā)送到本地倉庫時(shí)候所寫的groupId:artifactId:version
classpath "com.xxxxx.plugin:double-click:1.0.26"
到此這篇關(guān)于android自定義gradle插件并且發(fā)布到本地倉庫詳細(xì)教程的文章就介紹到這了,更多相關(guān)android自定義gradle插件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- AndroidStudio 使用過程中出現(xiàn)的異常(Gradle sync failed)處理辦法
- Android studio gradle環(huán)境變量配置教程
- android studio 一直卡在Gradle:Build Running的幾種解決辦法
- 詳解關(guān)于Android 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依賴管理、去除重復(fù)依賴、忽略的方式
- Android使用Gradle依賴配置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
Fiddler實(shí)現(xiàn)手機(jī)抓包之小白入門必看
這篇文章主要介紹了Fiddler實(shí)現(xiàn)手機(jī)抓包之小白入門必看篇,需要的朋友可以參考下2018-03-03
Android 逐幀動(dòng)畫創(chuàng)建實(shí)例詳解
這篇文章主要介紹了Android 逐幀動(dòng)畫創(chuàng)建實(shí)例詳解的相關(guān)資料,這里主要說明Android 動(dòng)畫的創(chuàng)建及使用方法,希望通過此文能幫助到大家,需要的朋友可以參考下2017-08-08
解決Android Studio突然不顯示logcat日志的問題
這篇文章主要介紹了解決Android Studio突然不顯示logcat日志的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧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é)效果,邏輯非常簡單,或許繪圖方面更加繁瑣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

