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