? ????在網(wǎng)絡上的文章,大多數(shù)都是比較早的,而且 gradle 版本都是采用舊的,可以使用到?com.github.dcendents:android-maven-gradle-plugin:2.1 ,但是我們采用了 gradle 版本到 7.0 之后,這些就不適用了,而且坑很多,我創(chuàng)建了多個項目進行嘗試,都是都失敗了,也是根據(jù)網(wǎng)絡上的配置了jitpack.yml 文件,去指定在 jitpack 需要編譯的jdk版本,可是還是失敗(不知道是不是第一次提交失敗了,jitpack 有緩存,后續(xù)無論怎么更改都失敗,不過我覺得應該不是這個問題吧,不然jitpack就太low)。好,廢話就不多說,下面開始我們創(chuàng)建自己的發(fā)布依賴之旅吧。
我其中參考了:
Jitpack.io ERROR: No build artifacts found一路踩坑的解決【Gradle 7.0+,Kotlin 1.5+】(跟著這個,新建項目,可以成功)
你會在 JitPack 上創(chuàng)建依賴庫嗎?(我當時嘗試,失敗后,一直無法成功,不知道是不是真的 jitpack 有緩存)
Android發(fā)布依賴庫詳解(這個使用的是舊的,就是使用 classpath'com.github.dcendents:android-maven-gradle-plugin:2.1' 這種的,我們新的回使用官方的 maven-publish)
Android官方mven-publish使用示例
當前教程,成功發(fā)布的源碼:
https://github.com/HZHAndroid/HelloPublish
一、我發(fā)布的時候的,Android 項目上的配置如下:

? ?1、我的gradle版本是 gradle-7.0.2(項目根目錄->gradle->wrapper->gradle-wrapper.properties)
? ??????distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
? ?2、gradle 的插件版本 (項目根目錄->build.gradle)
? ??????classpath"com.android.tools.build:gradle:7.0.0-beta05"
? ?3、jdk 采用?1.8.0_221 (這個我們本地的不影響 jitpack 編譯,到時候通過 jitpack.yml 去指定編譯的 jdk 版本就可以了,提示:jitpack 默認是采用 1.8 的jdk進行編譯的)
? ?4、Android Studio Arctic Fox | 2020.3.1 Beta 5要求:
1、需要有 jitpack 賬號,可以去jitpack官網(wǎng)自行注冊
2、需要有 github 賬號 或者是 碼云 gitee 賬號,可以去碼云titee或者github自行注冊
二、開始項目的創(chuàng)建和需要發(fā)布的依賴庫的配置

? ?1、創(chuàng)建項目(HelloPublish)
? ? ? ? 這里基本上不斷下一步,最后finish就可以了。
? ?2、創(chuàng)建我們需要發(fā)布的依賴(hellolib)
? ? ? ? 1)這里選擇 【Android Library】表示這是一個庫,然后截圖上是 hellolib1 ,是因為我項目中原本就存在 hellolib,所以沒有辦法同名

? ?3、配置我們創(chuàng)建的 hellolib 的發(fā)布配置:
? ? ? ? 1)打開hellolib 目錄下的 build.gradle 文件,在 plugins{} 標簽中加入?id 'maven-publish',同時加入
? ? ? ? ? ?task generateSourcesJar(type: Jar){? ? ? ? ? ? ? ?from android.sourceSets.main.java.srcDirs
? ? ? ? ? ? ? classifier? 'sources'
? ? ? ? ?}
? ? ? ?這個方法,具體的如圖:

2)在hellolib的build.gradle 加入 截圖所示配置,

完整的配置信息,如下:
HelloPublish的hellolib的build.gradle
3) 在我們的 hellolib 里面創(chuàng)建隨意一個類,發(fā)布成功后,可以使用來測試的,我這創(chuàng)建了
interface ICallback<T> {} 接口,也加入了圖片和字符串資源,都是利用來測試的。如圖:

三、將代碼同步到 github 上。分別執(zhí)行一下命令:
1)echo "”>>README.md
? ? ?git init
? ? ?git add .
? ? ?git commit -m "first commit"
? ? ?git remote add origin https://github.com/HZHAndroid/HelloPublish.git
? ? ?git push -u origin master
注意:github 現(xiàn)在推送代碼,是采用了 token 的形式,可以去后端生成 token,然后去 android studio 等工具使用,否則無法提交代碼,原本的密碼賬號的形式,已經(jīng)被廢棄了。
可以查看:github 生成token的方法
2)代碼同步完成后,我們就去創(chuàng)建一個 release 版本,如圖:

點擊圖上圈著的Release按鈕,就會跳轉(zhuǎn)到創(chuàng)建頁面,如果非第一次創(chuàng)建,可以看到如下頁面,點擊【Draft a new release】按鈕去創(chuàng)建一個版本。

創(chuàng)建一個發(fā)布版本:
Choose a tag:創(chuàng)建/選擇一個標簽(其實就是版本號)
Target: main :這里是需要發(fā)布的代碼的分支
Release title:發(fā)布的標題
Write:版本描述
This is a pre-release:當前是否一個預發(fā)布版本,一般不用勾選
Publish release:發(fā)布
Save draft:保存草稿
創(chuàng)建號版本后,就會回到發(fā)布列表了,接著,我們就去 jitpack 發(fā)布。

四、將我們代碼關(guān)聯(lián)到 jitpack,生成依賴庫。
1、在github上,對如圖圈著的鏈接(https://github.com/HZHAndroid/HelloPublish 或者 https://github.com/HZHAndroid/HelloPublish.git)的其中一個進行復制即可,

2、進入?https://jitpack.io/ ,然后把我們復制的代碼鏈接,填充到輸入框中,接著點擊 【Loop up】 按鈕,接著可以看到你github上,最新的幾個版本在這里(我這里是因為我之前上傳過,所以有這么多),分別點擊右側(cè)的【Get it】按鈕,加入沒有 loading,則多點幾次,刷網(wǎng)頁也可以。


如【版本編譯的結(jié)果】圖片上顯示的,我這里的 v1.2、v1.3、v1.4 左邊的文檔圖標是紅色的,表示當前版本編譯失敗,點擊文檔圖標,可以查看失敗的原因,而 v1.5、v1.6 左邊的圖標是綠色的,說明編譯編成功,成功后的版本是可以被依賴的。
依賴的方法,如下圖:但是? implementation 'com.github.HZHAndroid:HelloPublish:Tag' 中的 Tag, 改為你想要依賴的版本,如我依賴最新版本,
implementation 'com.github.HZHAndroid:HelloPublish:v1.6'
