本文詳解如何在androidStudio中,搭建以及使用maven本地倉庫
搭建
從無到有
1. 創(chuàng)建一個(gè)javaLibrary, module名字自取.
image.png
image.png
2. 找到這個(gè)module的build.gradle文件
原本長(zhǎng)這樣
此時(shí),右側(cè)Gradle欄目中,zzsyc的Tasks是長(zhǎng)這樣:
image.png
接下來我們進(jìn)行處理:
image.png
在配置publishing閉包的時(shí)候
publishing {//然后進(jìn)行發(fā)布配置
publications {
zzsycChannelPlugin(MavenPublication) {//zzsycChannelPlugin 是發(fā)布配置命令的名字
from components.java // 這個(gè)命令來自java
groupId = 'com.zhou.plugins' //插件包名,在此插件被引用的時(shí)候必須寫成一摸一樣
artifactId = 'channelPlugin' //插件名,在此插件被引用的時(shí)候必須寫成一摸一樣
version = '1.2'//插件版本號(hào)
}
}
}
要特別注意3個(gè)參數(shù):
groupId 這是maven的群組ID, artifactId 是插件名,version是插件版本號(hào),三者完全匹配才能準(zhǔn)確定位到一個(gè)插件,定義插件的時(shí)候可以隨便寫,但是使用插件的時(shí)候,必須一毛一樣,否則編譯失敗,說找不到插件。
3. 新建java類,編輯插件邏輯
image.png
MyProject.javaMyTask.java
最最簡(jiǎn)單的插件,也必須有兩個(gè)類,一個(gè) impelement Plugin<Project>,一個(gè) extends DefaultTask
4. 創(chuàng)建插件配置文件
image.png
這里要特別注意:
image.png
這里有3級(jí)目錄,resources / META-INF / gradle-plugins,然后才是文件名:hank.zhou.plugin.properties
這里的目錄,必須創(chuàng)建成一摸一樣,否則,會(huì)有未知錯(cuò)誤。
5. 發(fā)布插件到mavenLocal
如果上述過程都完成,而且沒有報(bào)編譯錯(cuò)誤,那么就可以發(fā)布插件到mavenLocal:
image.png
注:如果剛才的java代碼中存在中文,那么,你有可能會(huì)看到:image.png
此時(shí),只需要將文件的編碼格式從utf-8改為GBK即可:
image.png
如果順利,就會(huì)發(fā)布成功:
image.png
我們到本地的maven倉庫目錄下去找找看:
image.png
發(fā)布成功!
使用本地gradle插件
使用的時(shí)候,兩個(gè)步驟:
1. 在全局build.gradle 文件中,加入兩個(gè)部分:
image.png
注:這里classpath 'com.zhou.plugins:channelPlugin:1.2'也是分為3個(gè)部分,一個(gè)groupId,冒號(hào)后面接,artifactId,冒號(hào),接版本號(hào).
2. 在app module的build.gradle中, 引用此插件
image.png
注意,上圖中,apply plugin: 'hank.zhou.plugin'是新增的代碼。其中 hank.zhou.plugin 是和 hank.zhou,plugin.properties 的文件名是一摸一樣的.
gradle同步成功之后,就能看到我們自定義的Task:
image.png
如果你還沒有搭建maven本地倉庫的話
1. 先去官網(wǎng)下載maven最新版:
image.png
2. 下載好之后,解壓到本地,并且進(jìn)入bin目錄
image.png
3. 在此處打開cmd,輸入mvn help:system 回車
image.png
image.png
直到:
image.png
才算搭建成功!之后就可以在用戶目錄下找到.m2 文件夾,從而找到自己發(fā)布的插件.
image.png























