Android发布开源库到JitPack
最近在整合项目资料的时候,注意到项目中很多可以通用的module,每次新建项目都需要把这些module依赖进来,如果module发生了改变,那么所有的项目都需要手动更改代码,因此尝试把通用的组件提取出来,放到JitPack上,当然还有阿里云Maven,和MavenCentral,这个我们下篇在介绍。
创建项目
在Android Studio中创建一个名为JitShare的项目

点击Finish完成工程创建。
新建Module与依赖
File --> New --> New Module

输入Module name,点击Finish。
创建好module的工程目录结构如下

可以看到app和share是不同的图标,app是可运行模块,share是可依赖模块。
下一步是配置app模块依赖share模块。在开始依赖之前,我们先看appmodule的build.gradle。

下面来添加share模块的依赖.
点击这个图标,或者使用快捷键Ctrl + Alt + Shift + S

在弹框中,按照下图所示操作(Dependencies –> app –> + –> Module Dependency )。

勾选上share,点击OK

再看Modoule级别的app的build.gradle。

可以看到,app模块已经完成了对share模块的引用。
测试依赖库
因为share模块里面是空的,所以现在也无法判断是否正确引用了,因此我们在share模块中,添加一些测试代码.
我们在share模块中,新建一个Logger类
package com.carl.demo.share |
然后在app模块中添加测试代码

可以发现,能够正常调用,运行模拟器,能够正常输出日志。
项目配置
打开工程的build.gradle,添加如下代码:
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' |
maven { url "https://jitpack.io" } |
因为gradle 7.0之后工程结构发生了变化,因此需要修改的位置发生了变化。(如果不知道用的话,可以降低Android Studio的版本,还是沿用以前的配置)
对于仓库的引用,移到了settings.gradle中的dependencyResolutionManagement里面
完整配置如下:
dependencyResolutionManagement { |
对于classpath的引用,我们仍然可以按照之前的方法,在Project的build.gradle中,手动添加依赖,完整配置如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules. |
提交代码
需要先安装
git

点击File –> Settings,在Version Control里面找到Github这个选项,点击+,选择用Token或者用户名登录.

登录完成后,会显示当前登录的用户

登录完成后,我们将代码提交到Github。
在工具栏CVS –> Share Project on Github


然后在弹出框中,输入提交信息

等待代码发布到Github即可。

我们打开Github,查看刚才提交的仓库

创建Releases/Tags版本
点击tags

点击Create a new release

输入版本号,这里建议用v1.0.0这样的格式,如果你勾选了Set as a pre-release可以用v0.2.0-alpha或者v5.9-beta.3这样的格式。

注意: 这里输入完
v1.0.0之后,需要按一下Enter,不然会创建失败(提示 We weren’t able to create the release for you. Make sure you have a valid tag.),创建成功后,Choose a tag的文字就会变成v1.0.0了
最后,我们点击Publish release,完成初次提交。出现类似下面的界面,就表示完成了。

注意:这里发布的版本,需要是能够编译通过正常构建的,不然下面的操作会失败。
提交到JitPack
打开Jitpack
在Git repo url中输入我们git仓库的地址(现在已经支持gitee,因此我们也可以把代码发布到gitee),点击Look up。

点击Get it


我们可以按照上面的提示,将svg的代码添加到README.MD中。
测试JitPack依赖
按照上面的提示,我们新建一个工程,把仓库依赖添加到的dependencies
implementation 'com.github.winstone-su:JitShare:Tag' |
把上面的Tag换成最新的版本号即可,这里是1.0.0
如果提示,找不到这个依赖,我们要可能需要等待它构建完成。

完成后如图

把鼠标悬浮在Log下报告中,如果显示Status:ok,那么表示构建成功了,重新再sync project
在主工程的MainActivity中添加测试代码

能够正常引用,说明已经完成了依赖。
依赖库升级
在我们往JitShare中添加了一些新功能,这个时候我们需要升级我们的依赖库。
我们先把JitShare的代码push到github

打开仓库对应的地址,点击Draft a new release

然后选择一个新的tag,输入标题和说明,勾选上Set as the latest release,点击Publish release

然后查看,可以看到这里成功了。

我们再进入JitPack,按照之前的步骤操作

完成后,在Android Studio中更新依赖
implementation 'com.github.winstone-su:JitShare:1.0.1' |
其他问题
Could not resolve com.android.tools.build:gradle:8.0.2.
错误日志参考: https://www.jitpack.io/com/github/winstone-su/EasyExcel/V1.0.2/build.log
写这篇文章的时候,AS默认使用的Gradle版本还是7.3.1 ,后面再去创建工程的时候,默认的AGP版本已经升级到了8.0.2,同时JDK要使用JAVA 17了
// project build.gradle |
我在使用这个配置的时候,发现报错找不到gradle 8.0.2
因此需要把Gradle的版本降级到7.3.1
// project build.gradle |
