首先描述一下jar、aar瓦哎、上傳到j(luò)itpack進(jìn)行遠(yuǎn)程依賴的區(qū)別
jar:JAR包主要用于Java應(yīng)用程序蛀序,包含編譯后的class文件和清單文件护侮,但不包含Android資源文件。
aar:AAR文件是Android庫項(xiàng)目的二進(jìn)制歸檔文件,包含class文件和所有的資源文件钝荡,項(xiàng)目中使用的其他三方依賴不會(huì)打包進(jìn)aar街立。
上傳到j(luò)itpack:從你的git倉(cāng)庫拉取代碼在線編譯,會(huì)將module中所有用到的代碼編譯進(jìn)去
一埠通、創(chuàng)建項(xiàng)目赎离、創(chuàng)建module
上圖中app是項(xiàng)目的主module,androidutilscenter是創(chuàng)建的用于發(fā)布到j(luò)itpack的module端辱,在子module中隨便創(chuàng)建一個(gè)工具類文件用于測(cè)試
二梁剔、將項(xiàng)目提交到gitee或者github
文中以gitee為例
三、配置子module
紅框區(qū)域是新增內(nèi)容舞蔽,第一個(gè)紅框是添加publish的插件支持荣病,alias的寫法是方便進(jìn)行統(tǒng)一管理,也可以使用下面那一行的寫法渗柿。alias的寫法是最新版的android studio創(chuàng)建項(xiàng)目后的新寫法个盆,創(chuàng)建項(xiàng)目時(shí)會(huì)創(chuàng)建libs.versions.toml文件,alias指向的是下圖的紅框內(nèi)容朵栖。
//這三個(gè)屬性是自己定義的
group="com.xxx.xxx"
version="1.0.01"
artifactId = "xxxxx"
android中sourceCompatibility颊亮、targetCompatibility我使用的是java 17,主要是因?yàn)槲业膅radle是8.0以上混槐,根據(jù)自己項(xiàng)目的gradle版本來決定编兄,如果兩者沒有對(duì)應(yīng)后面發(fā)布到gitpack失敗時(shí)錯(cuò)誤日志也會(huì)提醒轩性。
至此所有配置已完成声登。
為了避免我們不斷的在線編譯錯(cuò)誤,我們可以在根目錄下執(zhí)行指令來檢測(cè):
./gradlew install
如果顯示BUILD SUCCESSFUL揣苏,那就恭喜你成功了悯嗓。上傳代碼吧。
四卸察、上傳代碼到gitee/github
代碼上傳成功后脯厨,創(chuàng)建tag標(biāo)簽
五、打開jitpack網(wǎng)站坑质,發(fā)布
jitpack地址:https://jitpack.io/
jitpack目前支持gitee合武,可以登錄gitee賬號(hào)
登錄賬號(hào)、輸入自己項(xiàng)目的git地址涡扼,點(diǎn)擊look up稼跳,jitpack會(huì)自動(dòng)搜索最新創(chuàng)建的tag,并進(jìn)行發(fā)布吃沪,需要耐心等待一段時(shí)間汤善,發(fā)布結(jié)束后綠色表示發(fā)布成功,紅色表示失敗
發(fā)布成功后點(diǎn)擊get it,會(huì)告訴你如何使用
到此已經(jīng)jitpack已經(jīng)發(fā)布成功红淡。
常見問題:
1不狮、在Android項(xiàng)目中引用時(shí)提示:'Gradle sync failed. Received status code 401 from server: Unauthorized'
原因:由于你的項(xiàng)目是私有項(xiàng)目,所以別人在引用時(shí)無法獲取授權(quán)在旱,兩種解決方式:
方式a摇零、將項(xiàng)目改為公共項(xiàng)目,別人也可以訪問(gitee上設(shè)置)
方式b桶蝎、在項(xiàng)目的跟build文件上配置自己jitpack的Access Token遂黍,
2、An exception occurred applying plugin request [id: 'com.android.library', version: '8.5.1']俊嗽,
原因:版本不匹配雾家,將java 11 改為 java 17