? ????在網絡上的文章,大多數都是比較早的,而且 gradle 版本都是采用舊的,可以使用到?com.github.dcendents:android-maven-gradle-plugin:2.1 ,但是我們采用了 gradle 版本到 7.0 之后,這些就不適用了,而且坑很多,我創建了多個項目進行嘗試,都是都失敗了,也是根據網絡上的配置了jitpack.yml 文件,去指定在 jitpack 需要編譯的jdk版本,可是還是失敗(不知道是不是第一次提交失敗了,jitpack 有緩存,后續無論怎么更改都失敗,不過我覺得應該不是這個問題吧,不然jitpack就太low)。好,廢話就不多說,下面開始我們創建自己的發布依賴之旅吧。
我其中參考了:
Jitpack.io ERROR: No build artifacts found一路踩坑的解決【Gradle 7.0+,Kotlin 1.5+】(跟著這個,新建項目,可以成功)
你會在 JitPack 上創建依賴庫嗎?(我當時嘗試,失敗后,一直無法成功,不知道是不是真的 jitpack 有緩存)
Android發布依賴庫詳解(這個使用的是舊的,就是使用 classpath'com.github.dcendents:android-maven-gradle-plugin:2.1' 這種的,我們新的回使用官方的 maven-publish)
Android官方mven-publish使用示例
當前教程,成功發布的源碼:
https://github.com/HZHAndroid/HelloPublish
一、我發布的時候的,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官網自行注冊
2、需要有 github 賬號 或者是 碼云 gitee 賬號,可以去碼云titee或者github自行注冊
二、開始項目的創建和需要發布的依賴庫的配置
? ?1、創建項目(HelloPublish)
? ? ? ? 這里基本上不斷下一步,最后finish就可以了。
? ?2、創建我們需要發布的依賴(hellolib)
? ? ? ? 1)這里選擇 【Android Library】表示這是一個庫,然后截圖上是 hellolib1 ,是因為我項目中原本就存在 hellolib,所以沒有辦法同名
? ?3、配置我們創建的 hellolib 的發布配置:
? ? ? ? 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 里面創建隨意一個類,發布成功后,可以使用來測試的,我這創建了
interface ICallback<T> {} 接口,也加入了圖片和字符串資源,都是利用來測試的。如圖:
三、將代碼同步到 github 上。分別執行一下命令:
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 現在推送代碼,是采用了 token 的形式,可以去后端生成 token,然后去 android studio 等工具使用,否則無法提交代碼,原本的密碼賬號的形式,已經被廢棄了。
可以查看:github 生成token的方法
2)代碼同步完成后,我們就去創建一個 release 版本,如圖:
點擊圖上圈著的Release按鈕,就會跳轉到創建頁面,如果非第一次創建,可以看到如下頁面,點擊【Draft a new release】按鈕去創建一個版本。
創建一個發布版本:
Choose a tag:創建/選擇一個標簽(其實就是版本號)
Target: main :這里是需要發布的代碼的分支
Release title:發布的標題
Write:版本描述
This is a pre-release:當前是否一個預發布版本,一般不用勾選
Publish release:發布
Save draft:保存草稿
創建號版本后,就會回到發布列表了,接著,我們就去 jitpack 發布。
四、將我們代碼關聯到 jitpack,生成依賴庫。
1、在github上,對如圖圈著的鏈接(https://github.com/HZHAndroid/HelloPublish 或者 https://github.com/HZHAndroid/HelloPublish.git)的其中一個進行復制即可,
2、進入?https://jitpack.io/ ,然后把我們復制的代碼鏈接,填充到輸入框中,接著點擊 【Loop up】 按鈕,接著可以看到你github上,最新的幾個版本在這里(我這里是因為我之前上傳過,所以有這么多),分別點擊右側的【Get it】按鈕,加入沒有 loading,則多點幾次,刷網頁也可以。
如【版本編譯的結果】圖片上顯示的,我這里的 v1.2、v1.3、v1.4 左邊的文檔圖標是紅色的,表示當前版本編譯失敗,點擊文檔圖標,可以查看失敗的原因,而 v1.5、v1.6 左邊的圖標是綠色的,說明編譯編成功,成功后的版本是可以被依賴的。
依賴的方法,如下圖:但是? implementation 'com.github.HZHAndroid:HelloPublish:Tag' 中的 Tag, 改為你想要依賴的版本,如我依賴最新版本,
implementation 'com.github.HZHAndroid:HelloPublish:v1.6'