发布开源组件到JitPack

QuibblerQuibbler 2023-05-17 约 4 分钟 1907 次阅读

发布开源组件到JitPack

好几个月没有更新博客,业余精力主要放到开源社区,经过近一年的一点点积累,也写了几个小组件。


推荐将组件发布到JitPack,只需要简单的几步。比发布到Maven要方便简单的多,不需要修改项目引入额外的'maven-publish'等容易出错的gradle配置。

1、发布release

第一步,在GitHub上发布release版本,这里以WaveLoadingCircleView仓库为例。

①新建或从选择已有的Tag发布release;

②填写版本号,组件的版本号一般为三位 X.X.X 数字;比如1.0.0、2.8.0等。

③填写发布的组件说明,bug修复还是新特性;

④可以选则上传aar,也可以忽略,借助JitPack提供。

⑤最后选择是否是一个pre-release的预览版本,如果组件够稳定,就发布正式的release。


点击发布,会在仓库右侧看到所有已经发布的版本。


2、通过JitPack发布

接着打开JitPack官网:https://jitpack.io/,输入要发布组件的仓库地址(支持GitHub、Gitee.com)(以WaveLoadingCircleView为例),点击Look Up,JitPack会自动查找在GitHub仓库中所有已经发布的relase版本。

选择需要发布的release版本点击Get it,稍等片刻,JitPack会执行编译以获取最终发布的aar。

3、常见错误

本地能编译成功,但在JitPack平台不一定顺利,可能会遇到各种编译报错问题,导致不能Get 到最终的发布版本,现在记录一下遇到的“坑”:


仔细看这一行“Incompatible because this component declares an API of a component compatible with Java 11 and the consumer needed a runtime of a component compatible with Java 8”,说明JitPack平台需要用Java 11,而本地默认配置的是Java 8,就需要将所有compileOptions配置改成Java 11即可:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }

编译过程中会输出编译日志,通过日志分析解决遇到的其它问题,比如:

编译失败Log:https://jitpack.io/com/github/quibbler01/WaveLoadingCircleView/1.0.1/build.log

 编译成功Log:https://jitpack.io/com/github/quibbler01/SwitchButton/1.0.2/build.log

4、使用JitPack发布的组件

使用通过JitPack发布的组件非常方便,只需要在项目根build.gradle中添加:

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

再添加对应的依赖即可:

dependencies {
	        implementation 'com.github.quibbler01:WaveLoadingCircleView:1.0.2'
	}

如果gradle无法下载依赖,可以参考解决maven { url 'https://jitpack.io' } 无法下载的问题一文。

相关推荐

Airbnb开源项目
精选开源

Airbnb开源项目

Airbnb Engineering & Data ScienceAirflow Use Apache Airflow (incubating) to author workflows as directed acyclic graphs (DAGs) of tasks12,263Airpal Web UI for PrestoDB2,502Aerosolve A machine learning

2.3k
WilliamChart:轻量美观的 Android 图表库实战
精选开源

WilliamChart:轻量美观的 Android 图表库实战

WilliamChart:轻量美观的 Android 图表库实战数据可视化是运动、健康、金融、统计类 App 的刚需。MPAndroidChart 功能最全但偏重复杂,WilliamChart 走的则是"轻量 + 美观 + Kotlin 原生"路线——v3 用 Kotlin 完全重写,API 极简,一行 chart.animate(dataSet) 就能把数据画成带动画的折线/柱状/环形图,开箱即

175
sherpa解析:开源语音技术全家桶
精选开源

sherpa解析:开源语音技术全家桶

想在手机、树莓派甚至 RISC-V 开发板上离线跑语音识别,五年前还是个需要啃 Kaldi 源码的硬核课题。k2-fsa 组织的 sherpa 把这件事变成了"下载预训练模型、装个包、跑示例"的三步操作。这个以 Apache-2.0 协议开源的项目自我定位是"新一代 Kaldi 的语音转文本框架",它专注端到端模型的推理部署:transducer 与 CTC 两类架构,C++ 与 Python 双…

44