Gradle Plugin 制作插件流程

1.開始

創(chuàng)建一個(gè)Library項(xiàng)目漫谷,并且刪除build.gradle中原來的數(shù)據(jù)

2.處理Library的build.gradle文件

1.添加groovy插件 apply plugin: 'groovy'
2.添加maven插件  apply plugin: 'maven
3.添加groovy和gradleAPI的依賴關(guān)系:

    dependencies {
    implementation gradleApi()
    implementation localGroovy()
    }
4.因?yàn)槲覀円谱鞒刹寮姆绞矫┲鳎蕴砑觤aven倉庫的支持

repositories {
    mavenCentral()
}

5.然后配置一些我們?cè)贛aven上的一些基礎(chǔ)配置信息咙轩。


repositories {

    mavenCentral()

}

uploadArchives {
repositories {
    mavenDeployer {
        //提交到遠(yuǎn)程服務(wù)器:
        // repository(url: "http://127.0.0.1:8081/repository/maven-releases/") {
        //      authentication(userName: 'admin', password: 'admin123')
        // }
        //配置group:artifactId:version 信息
        pom.project {
            version '1.0.0'
            artifactId 'testPlugin'
            groupId 'com.xiaxiayige.plugin'
            packaging 'aar'
            description 'update version 1.0.0'
        }
       //配置本地的Maven地址設(shè)置為E:/Maven
        repository(url: uri('E:/repo'))
    }
}

}

3.到Library目錄下曹鸠,刪除Main目錄下的所有文件夾及文件,然后在main錄下進(jìn)行操作

1.創(chuàng)建一個(gè)groovy的目錄(也可以創(chuàng)建java目錄手蝎,表示你的插件使用java編寫的趁餐,但是記得注意在配置plugin支持的時(shí)候要引用java版本的gradle插件)散怖,然后在目錄下創(chuàng)建你自己的包名菇绵,然后創(chuàng)建一個(gè)自己的Plugin類肄渗,需要以groovy結(jié)尾,如:xxxxx.groovy

2.然后在main目錄下依次創(chuàng)建目錄 resources/META-INF/gradle-plugins

3.然后在gradle-plugins目錄下創(chuàng)建文件 com.xxx.plugin.properties (插件名.properties)

4.然后在com.xxx.plugin.properties中填寫
    
    implementation-class = com.xiaxiayige.plugin.TestPlugin (插件類全路徑)

4.然后在編寫我們的TestPlugin.groovy文件

class TestPlugin implements Plugin<Project> {

void apply(Project project) {
    println("==============================> this is TestPlugin ")
}

}

5.上傳插件脸甘,找到右側(cè)的(一般在右側(cè))Gradle目錄,然后找到Libray目錄恳啥,然后找到tasks,然后找到 upload目錄丹诀,然后找到uploadAchieves,然后雙擊執(zhí)行,這也是Maven里面提供的一個(gè)方法钝的,幫助我們打包生成相關(guān)依賴包。

image

6.引用插件.

1.首先到我們跟項(xiàng)目中的build.gradle文件中添加代碼铆遭。
    1.1 添加指定我們本地的maven地址
    1.2 添加classPath

    buildscript {
        repositories {
        //1.1 步驟
        maven{
            //指定本地的數(shù)據(jù)倉庫 如果是遠(yuǎn)程的 指定遠(yuǎn)程倉庫鏈接即可
            url uri('E:/repo')
        }
        google()
        jcenter()
    }
    dependencies {
    classpath 'com.android.tools.build:gradle:3.3.1'

    //1.2步驟 classPath = 上面定義的(group:artifactId:version)
    classpath 'com.xiaxiayige.plugin:testPlugin:1.0.0'
    
}
}

2.然后在我們的App項(xiàng)目模塊中添加引入插件硝桩。

//插件名稱就是 定義的這個(gè) com.xxx.plugin.properties文件的文件名

apply plugin: 'com.xxx.plugin'

7.驗(yàn)證結(jié)果

1.點(diǎn)擊Make-Project(Windows中快捷鍵 = Ctrl+9,就是那個(gè)榔頭一樣的圖標(biāo))以后就可以驗(yàn)證結(jié)果。
image

ok枚荣,到這里碗脊,基本驗(yàn)證通過。接下來我們?cè)僮龈嗖僮靼伞?/p>

8.參考文章:

https://blog.csdn.net/yulong0809/article/details/77752098

9.另外

另外可以參考 https://github.com/JakeWharton/butterknife這個(gè)項(xiàng)目中插件的那一部分的目錄結(jié)構(gòu)和寫法橄妆,可以發(fā)現(xiàn)基本上就是上面講的那樣定義聲明的衙伶。也不怕忘記了 哈哈。

Demo地址

https://github.com/xiaxiayige/LearingProJect/tree/master/GradlePluginDemo

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末害碾,一起剝皮案震驚了整個(gè)濱河市矢劲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慌随,老刑警劉巖芬沉,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阁猜,居然都是意外死亡丸逸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門剃袍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黄刚,“玉大人,你說我怎么就攤上這事民效“鳎” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵研铆,是天一觀的道長(zhǎng)埋同。 經(jīng)常有香客問我,道長(zhǎng)棵红,這世上最難降的妖魔是什么凶赁? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上虱肄,老公的妹妹穿的比我還像新娘致板。我一直安慰自己,他們只是感情好咏窿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布斟或。 她就那樣靜靜地躺著,像睡著了一般集嵌。 火紅的嫁衣襯著肌膚如雪萝挤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天根欧,我揣著相機(jī)與錄音怜珍,去河邊找鬼。 笑死凤粗,一個(gè)胖子當(dāng)著我的面吹牛酥泛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嫌拣,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柔袁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了异逐?” 一聲冷哼從身側(cè)響起捶索,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎应役,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體燥筷,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箩祥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肆氓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袍祖。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谢揪,靈堂內(nèi)的尸體忽然破棺而出蕉陋,到底是詐尸還是另有隱情,我是刑警寧澤拨扶,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布凳鬓,位于F島的核電站,受9級(jí)特大地震影響患民,放射性物質(zhì)發(fā)生泄漏缩举。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仅孩。 院中可真熱鬧托猩,春花似錦、人聲如沸辽慕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溅蛉。三九已至公浪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間温艇,已是汗流浹背因悲。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勺爱,地道東北人晃琳。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像琐鲁,于是被迫代替她去往敵國(guó)和親卫旱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 想要一個(gè)心安围段,一句寬慰顾翼。
    是溫暖呀閱讀 147評(píng)論 0 0
  • 本書的作者是加拿大布蘭登,羅伊爾奈泪,是由馮亞彬和劉祥亞聯(lián)合翻譯的适贸,由九州出版社出版的。邏輯是非常重要的一個(gè)學(xué)科涝桅,本書...
    藍(lán)藍(lán)的天空77閱讀 239評(píng)論 0 2
  • 今天皓然上午學(xué)完英語回來吃了中午飯就一點(diǎn)了拜姿,下午沒有別的課我們就去了青風(fēng)湖玩,因?yàn)樗麤]看見過雪后的湖面是什...
    小屁孩的娘閱讀 204評(píng)論 3 2
  • 1 吃完晚飯冯遂,還沒等路燈亮起來蕊肥,阿英就走到馬路上一邊散步,一邊按下了那個(gè)熟悉的跨國(guó)電話蛤肌。 電話響了一聲就被迫不及待...
    隆隆嘮嗑小天地閱讀 312評(píng)論 0 1
  • 公號(hào)怎么提高顏值(1) 在這個(gè)看臉就能醉的社會(huì)壁却,你用微信搭訕姑娘,她第一眼肯定先看你頭像裸准。 你頭像的質(zhì)量展东,決定了姑...
    梟視狼顧閱讀 141評(píng)論 0 0