android自定義gradle插件并且發(fā)布到本地倉庫詳細(xì)教程
一、在工程上新建一個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:版本號 repository(url: uri('../repo')):倉庫地址,為本地項目的repo文件夾,注意../不要寫錯,這是代表gradle所在目錄的上一層目錄。
六、引用
1、項目的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ā)布到本地倉庫時候?qū)懙牡刂穼?yīng)上。
maven { //配置本地插件目錄 url uri('./repo') }
(2)聲明,寫法就是發(fā)送到本地倉庫時候所寫的groupId:artifactId:version
classpath "com.xxxxx.plugin:double-click:1.0.26"
到此這篇關(guān)于android自定義gradle插件并且發(fā)布到本地倉庫詳細(xì)教程的文章就介紹到這了,更多相關(guān)android自定義gradle插件內(nèi)容請搜索腳本之家以前的文章或繼續(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報錯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)文章
Fiddler實現(xiàn)手機(jī)抓包之小白入門必看
這篇文章主要介紹了Fiddler實現(xiàn)手機(jī)抓包之小白入門必看篇,需要的朋友可以參考下2018-03-03解決Android Studio突然不顯示logcat日志的問題
這篇文章主要介紹了解決Android Studio突然不顯示logcat日志的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Android中自定義View實現(xiàn)圓環(huán)等待及相關(guān)的音量調(diào)節(jié)效果
這篇文章主要介紹了Android中自定義View實現(xiàn)圓環(huán)等待及相關(guān)的音量調(diào)節(jié)效果,邏輯非常簡單,或許繪圖方面更加繁瑣XD 需要的朋友可以參考下2016-04-04Android實現(xiàn)搜索功能并本地保存搜索歷史記錄
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)搜索功能,并實現(xiàn)本地保存搜索歷史記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03Android中使用PagerSlidingTabStrip實現(xiàn)導(dǎo)航標(biāo)題的示例
本篇文章主要介紹了Android中使用PagerSlidingTabStrip實現(xiàn)導(dǎo)航標(biāo)題的示例,具有一定的參考價值,有興趣的可以了解一下。2017-01-01