先介紹一下,寫這個(gè)文章的初衷吧誊锭。
我們公司有4個(gè)項(xiàng)目表悬,4個(gè)項(xiàng)目用到很多東西都一樣,每一次都改來改去的丧靡,4個(gè)項(xiàng)目蟆沫,很多時(shí)候都使用了一個(gè)神奇的工具籽暇,就是CV大法。
自己覺得復(fù)雜饭庞,就想著整理一份戒悠,然后做代碼封裝,這樣每一次改比較簡(jiǎn)單舟山,還鞏固了代碼封裝绸狐。
說干就干
準(zhǔn)備工作
環(huán)境:
1.git
2.Android Studio
步驟
1.創(chuàng)建作為庫的Module
2.生成maven文件
3.在Github創(chuàng)建倉庫,并將生成的maven文件上傳
4.項(xiàng)目添加遠(yuǎn)程Maven依賴庫
5.驗(yàn)證
這里以新工程為例
1.創(chuàng)建作為庫的Module
1.1 新工程建完以后累盗,新建一個(gè)庫的Module寒矿。
1.2 接著給庫名和模塊名取名,這里統(tǒng)一取maventest若债。
1.3 在庫中添加需要的代碼符相,這里隨意添加一個(gè)打印日志類
到這里庫算是完成庫的搭建,接著是生成maven文件蠢琳。
2.生成maven文件
2.1 在maventest的module的build.gradle文件末尾添加如下代碼:
applyplugin:'maven'
uploadArchives {
? ? repositories.mavenDeployer {
defmavenDirPath = file('F:\\mavendir')// 本地存放目錄(自行選擇)啊终,可放在gradle.properties文件中引用
repository(url:"file://${mavenDirPath.absolutePath}")// 必須雙引號(hào),單引號(hào)不會(huì)轉(zhuǎn)義$
? ? ? ? pom.project {
groupId"com.example.maven.test"http:// 可以隨意取挪凑,一般取包名
artifactId"meaventest"http:// 可以隨意取孕索,一般取庫的名字
version"1.0.0"http:// 版本號(hào)
? ? ? ? }
? ? }
}
2.2 打包生成maven文件
打開Android Studio的命令行,并執(zhí)行
gradlew:maventest:uploadArchives
?備注:maventest為模塊名
編譯成功以后會(huì)在F盤生成mavendir目錄躏碳,然后打開該目錄下的maven-metadata.xml搞旭,可以看到里面的參數(shù)都已經(jīng)配置完畢了,同時(shí)也可以找到meaventest-1.0.0.aar的文件 菇绵。
3.在Github創(chuàng)建倉庫肄渗,并將生成的maven文件上傳
3.1 在github新建倉庫
3.2 將剛剛生成的mavendir內(nèi)容上傳到github
gitinit
gitremote add origin git@github.com:Geroff/MavenTest.git
gitadd .
gitcommit -m "first commit"
gitpush origin -u master
?如果上傳時(shí)報(bào)錯(cuò),則先git pull咬最,如果這時(shí)git pull出現(xiàn)“fatal: refusing to merge unrelated histories“翎嫡,則先執(zhí)行
git pull origin master--allow-unrelated-histories
然后重新執(zhí)行:git push origin mastermaven,如果沒有報(bào)錯(cuò)則永乌,文件已經(jīng)上傳到github骡技。
3.3 生成倉庫地址
復(fù)制出倉庫當(dāng)前界面的鏈接地址
https://github.com/Geroff/MavenTest
對(duì)其進(jìn)行修改:
https://raw.githubusercontent.com/Geroff/MavenTest/master
即 github.com ——> raw.githubusercontent.com
再在末尾追加/master
表示當(dāng)前要選用的是master分支的內(nèi)容
4.項(xiàng)目添加遠(yuǎn)程Maven庫
4.1 在項(xiàng)目的根目錄的build.gradle文件中添加如下代碼:
maven{
url"https://raw.githubusercontent.com/Geroff/MavenTest/master"
? ? ? ? }
**備注:**是在allprojects的repositories添加胰耗。
4.2 在需要使用該庫的build.gradle文件的dependencies添加依賴, 代碼如下
dependencies{
......省略其它依賴
implementation'com.example.maven.test:meaventest:1.0.0'
}
5.驗(yàn)證
出現(xiàn)該庫的類,則說明添加依賴成功