发布开源组件到JitPack

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

发布开源组件到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

1.8k
OkHttp线程池和连接池
开源

OkHttp线程池和连接池

OkHttp线程池和连接池了解了OkHttp的网络请求流程以及拦截器实现原理,再关注OkHttp中两个重要的:OkHttp的线程池和连接池。1、OkHttp线程池在OkHttp网络请求流程一文中,我们分析了OkHttp异步和同步请求流程。请求最后都在Dispatcher中分发调度处理,最后被ExecutorService执行。1.1、DispatcherDispatcher中执行任务的执行器是ex

5.2k
优美的开源动效库:Lottie
开源

优美的开源动效库:Lottie

优美的开源动效库:Lottie1、强大的动效LottieLottie是一个适用于Android,iOS,Web和Windows的库,它可以使用Bodymovin解析以json格式导出的Adobe After Effects动画,并在移动设备和Web上原生渲染它们!GitHub:https://github.com/airbnb/lottie-androidLottie官网:http://airbn

4.3k