技术文章程序员jenkins

从GitHub到JitPack

2016-10-15  本文已影响2605人  匿蟒

最近折腾Bintray相关的事情,被一个小问题所折磨,颇有些精疲力竭的感觉。不禁感慨:

——发布个小小的jar竟有这么难?

JitPack简介

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

本质上,JitPack相当于一个Maven仓库。

对普通JVM应用,只要能够编译成功,都是可以自动生成的,不需要额外配置。

对Android的aar来说,需要确保./gradlew install能够把它安装到本地Maven仓库,默认路径为~/.m2/repositories/

发布aar的官方英文文档,简洁明了,几乎没有语言障碍。

发布

发布版本到JitPack,其流程之简洁,是令人震惊的!

  1. 用GitHub账户注册、登录JitPack
  2. 打tag,push到GitHub,生成一个Release。
  3. JitPack点击【Get it】
三个tag,绿色就代表可用,白色的不可用。白色是因为,按钮还没被点击过,对应的jar或aar还没编译安装到这里的Maven库中。

JitPack是基于GitHub Releases的发布。当你打完tag,自动生成一个Release时,源文件会自动打包成zip。在JitPack上点击【Get it】,就可以编译这个tag的源文件,把版本发布到这个私有Maven库中,并且可以提供给其他人使用。

比起Bintray的JCenter,或者Maven Central这个官方中央仓库来说,JitPack背靠GitHub,少了一大堆流程。

另外,JitPack也可以基于不是tag的提交来发布,点击上图左下角的【Commits】即可,用法类似。

使用

既然是发布给别人使用,那么别人如何使用呢?

点击【Get it】即可跳转到对应的使用方法

maven { url "https://jitpack.io" }就是指定私有Maven库为JitPackcompile 'com.github.User:Repo:Tag'则是指定具体的包。

缺陷就是,groupId无端地变成了com.github.User,会令人误认为是GitHub公司发布的。

其它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来访问该项目的javadoc。

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

不仅快速发布jar,连doc也有了。

Badge

JitPack也是有勋章的,大概是这个样子:

JitPack页面的下面可以看到对应勋章,点击后可出现生成好的Markdown链接。复制到项目的README.md即可。

勋章链接的大概规则如下:

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

参考

简洁的官方文档:https://jitpack.io/docs/

优雅的发布Android开源库(论JitPack的优越性)

后记

匿:既生JitPack,何生Bintray?
蟒:折腾完Bintray后,再发现JitPack,我的内心是崩溃的。等我回过神来,竟然10分钟就搞明白怎么用,而且本地编译时就已经用上了。与此同时,JCenter那边的审核都还没过。
匿:╮(╯╰)╭
蟒:ಥ

上一篇下一篇

猜你喜欢

热点阅读