從GitHub到JitPack

最近折騰Bintray相關(guān)的事情,被一個小問題所折磨,頗有些精疲力竭的感覺。不禁感慨:

——發(fā)布個小小的jar竟有這么難?

JitPack簡介

JitPack
Easy to use package repository for Git
Publish your JVM and Android libraries

本質(zhì)上,JitPack相當(dāng)于一個Maven倉庫。

對普通JVM應(yīng)用,只要能夠編譯成功,都是可以自動生成的,不需要額外配置。

對Android的aar來說,需要確保./gradlew install能夠把它安裝到本地Maven倉庫,默認(rèn)路徑為~/.m2/repositories/。

發(fā)布aar的官方英文文檔,簡潔明了,幾乎沒有語言障礙。

發(fā)布

發(fā)布版本到JitPack,其流程之簡潔,是令人震驚的!

  1. 用GitHub賬戶注冊、登錄JitPack。
  2. 打tag,push到GitHub,生成一個Release。
  3. JitPack點(diǎn)擊【Get it】
三個tag,綠色就代表可用,白色的不可用。白色是因?yàn)?,按鈕還沒被點(diǎn)擊過,對應(yīng)的jar或aar還沒編譯安裝到這里的Maven庫中。

JitPack是基于GitHub Releases的發(fā)布。當(dāng)你打完tag,自動生成一個Release時,源文件會自動打包成zip。在JitPack上點(diǎn)擊【Get it】,就可以編譯這個tag的源文件,把版本發(fā)布到這個私有Maven庫中,并且可以提供給其他人使用。

比起B(yǎng)intray的JCenter,或者M(jìn)aven Central這個官方中央倉庫來說,JitPack背靠GitHub,少了一大堆流程。

另外,JitPack也可以基于不是tag的提交來發(fā)布,點(diǎn)擊上圖左下角的【Commits】即可,用法類似。

使用

既然是發(fā)布給別人使用,那么別人如何使用呢?

點(diǎn)擊【Get it】即可跳轉(zhuǎn)到對應(yīng)的使用方法

maven { url "https://jitpack.io" }就是指定私有Maven庫為JitPack,compile 'com.github.User:Repo:Tag'則是指定具體的包。

缺陷就是,groupId無端地變成了com.github.User,會令人誤認(rèn)為是GitHub公司發(fā)布的。

其它Git源

JitPack也支持其它Git源,目前只有BitBucket和GitLab。

JitPack also works with other Git hosting providers. The only difference is the groupId of your artifacts:

  • BitBucket: org.bitbucket.Username:Repo:Tag
  • GitLab: com.gitlab.Username:Repo:Tag

用法與GitHub類似。

展示javadoc

如果打包有*-javadoc.jar到GitHub Releases里,可以通過一下URL來訪問該項(xiàng)目的javadoc。

https://jitpack.io/com/github/User/Repo/Version/javadoc/

不僅快速發(fā)布jar,連doc也有了。

Badge

JitPack也是有勛章的,大概是這個樣子:

JitPack頁面的下面可以看到對應(yīng)勛章,點(diǎn)擊后可出現(xiàn)生成好的Markdown鏈接。復(fù)制到項(xiàng)目的README.md即可。

勛章鏈接的大概規(guī)則如下:

[![](https://jitpack.io/v/User/Repo.svg)](https://jitpack.io/#User/Repo)

參考

簡潔的官方文檔:https://jitpack.io/docs/

優(yōu)雅的發(fā)布Android開源庫(論JitPack的優(yōu)越性)

后記

匿:既生JitPack,何生Bintray?
蟒:折騰完Bintray后,再發(fā)現(xiàn)JitPack,我的內(nèi)心是崩潰的。等我回過神來,竟然10分鐘就搞明白怎么用,而且本地編譯時就已經(jīng)用上了。與此同時,JCenter那邊的審核都還沒過。
匿:╮(╯╰)╭
蟒:?
?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容