Android 发布开源库到 JitPack (详细步骤)

简介: Android 发布开源库到 JitPack (详细步骤)

发布开源库到 JitPack


前言


最近这段时间,Google和jCenter的事情把开源库作者给搞懵了,jCenter还能使用一段时间,最近都是说迁移到mavenCentral上去,但是mavenCentral确实不太好迁移,所以退而求其次,选择JitPack。


 Jitpack的简单之处就在于,你只要把项目的代码提交到Github上之后,在打一个Release或者Tag,Jitpack就自动的帮你发布了一个新的版本,然后只要更新依赖就可以了,很方便,我个人是这么觉得的,虽说我没有写过什么开源依赖库,但是开源的小Demo我还是写了很多的,以帮助学习为主,这篇文章也是出于这个帮助的目的,下面进入正题。


正文


  希望这是你看过的最详细的关于发布项目到JitPack上的文章,我们从创建项目开始。


一、创建项目


打开你的AndroidStudio(我的版本 4.2.1),新建一个名为EasyLibrary的项目。


20210628163000197.png


点击Finish,完成项目的创建。


20210628163533322.png


下面进行依赖模块的创建。


二、模块创建与依赖


File → New → New Module…


2021062816380615.png


下面这个图要注意的是选择Android Library,然后输入模块名。


20210628164003442.png


点击Finish,模块创建完成之后,你就能看到这样的页面。


20210628164214893.png


可以看到easyutil与app是不同的图标,注意这一点,app是可运行模块,easyutil是可依赖模块。下一步就是app模块依赖easyutil模块,在依赖之后先看看app模块下的build.gradle


2021062816450864.png


此时dependencies闭包中是默认的依赖,下面来添加easyutil的依赖。点击下图的这个图标或者使用快捷键 Ctrl + Alt + Shift + S


20210628164556344.png


会弹出这样的弹窗。然后选择Dependencies ,按照下图的箭头进行操作。


20210628164856990.png


这就是给app模块添加一个依赖模块。


20210628165032144.png


勾选上easyutil,点击OK。


20210628165120819.png


此时你的app依赖内容里面就多了一个easyutil,点击OK,等待编译完成,再看看你的app下的build.gradle这里,多了一个依赖,此时依赖成功。


20210628165226411.png


三、测试依赖库


 目前依赖库里面什么都没有,因此是不是真的依赖成功了,都不知道,因此要测试一下,怎么测试呢,写几个方法,要是app模块能够调用不报错就说明依赖没有问题。在com.llw.easyutil下新建一个EasyToast类,里面的代码如下:



package com.llw.easyutil;
import android.content.Context;
import android.widget.Toast;
/**
 * EasyToast
 * @author llw
 */
public class EasyToast {
    /**
     * Toast
     */
    public static void show(final Context context, final CharSequence text) {
        Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
    }
    /**
     * LongToast
     */
    public static void showLong(final Context context, final CharSequence text) {
        Toast.makeText(context, text, Toast.LENGTH_LONG).show();
    }
}

然后在app模块的MainActivity中调用一下。


20210628172550864.png


在手机或者模拟器上运行一下:


20210628172731805.png


依赖没有问题,下面对依赖库进行配置。


四、项目配置


打开工程的build.gradle,添加如下代码:


classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
maven { url "https://jitpack.io" }


添加位置如下图所示:


20210628190702217.png


再打开easyutil模块下的build.gradle,添加如下代码:


apply plugin: 'com.github.dcendents.android-maven'
group='com.github.lilongweidev'


添加位置如下图:


20210628190649363.png


这里的group表示你自己的仓库名称,比如我的github地址是这样的,


20210628191834483.png


那么就是group=‘com.github.lilongweidev’,按照自己的实际情况来写。


最后记得要点击Sync Now。


五、提交代码


 下面进行代码提交,首先保证自己的电脑上安装了git,git官网地址,找到安装版本下载,直接安装,注意安装的路径。安装好之后File → Settings


2021062818010476.png


在图中标注的地方配置刚才git的安装路径,然后点击右边的Test按钮测试一下,出现弹窗,里面显示Success则说明git没有问题,点击GitHub → Add Account… ,登录你的Github账号。


20210628181239209.png


登录好了,


20210628191047399.png


下面直接通过AndroidStudio来提交项目代码。


2021062819105184.png


第一次提交就相当于在GitHub上创建仓库


20210628191502788.png


点击Share


20210628191707769.png


点击Add.


20210628192138852.png


第一来说第一次提交是比较顺利,但是也不排除网络环境比较差的提交失败,那就很麻烦了,如果请评论区留言,提交成功之后,你的AS右下角会出现一个弹窗提示,如上图所示,点击找个蓝色字体,就会进入到你提交到GitHub上的仓库地址。


2021062819283073.png


六、创建Release&Tag版本


点击这个tags


20210628192949700.png


点击Create a new release


20210628193129673.png


填写资料,release版本号和标题,以及该版本的描述。


2021062819332934.png


向下滑动。


2021062819344188.png


上面有一个This is a pre-release的选中按钮,勾选上则表示这是一个预发布版本,不勾选就是正式发布版本,这里不勾选,点击Publish release。


20210628193713339.png


发布成功。


七、提交到JitPack


下面进入Jitpack


20210628194110112.png


我的地址仓库如下:https://github.com/lilongweidev/EasyLibrary

后续会持续更新这个库,作为我自己的开源库,增加一个APP开发过程中的常用工具类,敬请期待。


将仓库地址复制到这个输入框中,然后点击Look Up,


20210628194353351.png


然后会出现你的发布版本,再点击Get it。


20210628194653688.png


现在提交成功了,再点击一下这个Get it。会自动向下滑,然后会告诉你怎么样在项目中使用这个依赖库。


20210628194819463.png


八、测试依赖库


为了证明这个依赖库确实有效,你可以新建一个EaseTest项目,然后这样配置进去。

打开新建项目的build.gradle,配置


20210628195101476.png


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


如下图所示:


20210628195517388.png


再打开app模块下的build.gradle,配置


implementation 'com.github.lilongweidev:EasyLibrary:1.0.0'

20210628195523839.png


然后Sync Now。


20210628195704657.png


在MainActivity中调用依赖库中的方法即可。运行一下


20210628200041288.png


九、依赖库升级


 网络依赖库会根据开发者和使用者的需要而改变或者增加一个功能API,因此对应的依赖库版本也要进行升级,否则就无法使用新增的功能API,还是拿我的哪个EasyLibrary来举例子,比如我现在更新了一些工具类。


20210707200338380.png


那么首先你要把这些更新的代码提交到GitHub上去,然后在GitHub上再发布一个release版本,比如我的库,


20210707200459149.png


现在最新是1.0.1,当我的代码提交之后我就要升级一个版本,也就是1.0.2。


20210707200613181.png


点击Draft a new release


20210707200832156.png


设置release版本以及更新版本的内容,然后点击Publish release进行版本发布。


20210707201004609.png


发布成功,现在进入jitpack,在输入框输入仓库地址,然后Look up你会看到刚才发布的1.0.2版本,


20210707201052603.png


点击Get it,等待一会儿,当这里的Log处有这个绿色文件时,说明已经在jitpack上生效了。


20210707201159761.png


这里就可以使用1.0.2版本了。


20210707201311347.png


然后再去你的使用这里依赖的地方改变一下版本号,然后Sync Now一下就可以使用新版本依赖库中的功能了。


SUCCESS,山高水长,后会有期~



相关文章
|
5月前
|
存储 缓存 Android开发
安卓Jetpack Compose+Kotlin, 使用ExoPlayer播放多个【远程url】音频,搭配Okhttp库进行下载和缓存,播放完随机播放下一首
这是一个Kotlin项目,使用Jetpack Compose和ExoPlayer框架开发Android应用,功能是播放远程URL音频列表。应用会检查本地缓存,如果文件存在且大小与远程文件一致则使用缓存,否则下载文件并播放。播放完成后或遇到异常,会随机播放下一首音频,并在播放前随机设置播放速度(0.9到1.2倍速)。代码包括ViewModel,负责音频管理和播放逻辑,以及UI层,包含播放和停止按钮。
|
25天前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
22 1
|
30天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
82 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
1月前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
2月前
|
Dart 开发工具 Android开发
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
|
3月前
|
编解码 测试技术 Android开发
Android经典实战之用 CameraX 库实现高质量的照片和视频拍摄功能
本文详细介绍了如何利用CameraX库实现高质量的照片及视频拍摄功能,包括添加依赖、初始化、权限请求、配置预览与捕获等关键步骤。此外,还特别针对不同分辨率和帧率的视频拍摄提供了性能优化策略,确保应用既高效又稳定。
307 1
Android经典实战之用 CameraX 库实现高质量的照片和视频拍摄功能
|
3月前
|
监控 Java API
Android经典实战之OkDownload:一个经典强大的文件下载开源库,支持断点续传
本文介绍的 OkDownload 是一个专为 Android 设计的开源下载框架,支持多线程下载、断点续传和任务队列管理等功能,具备可靠性、灵活性和高性能特点。它提供了多种配置选项和监听器,便于开发者集成和扩展。尽管已多年未更新,但依然适用于大多数文件下载需求。
355 1
|
3月前
|
API Android开发
Android项目架构设计问题之选择和使用合适的UI库如何解决
Android项目架构设计问题之选择和使用合适的UI库如何解决
48 0
|
3月前
|
Android开发 iOS开发 C#
Xamarin.Forms:从零开始的快速入门指南——打造你的首个跨平台移动应用,轻松学会用C#和XAML构建iOS与Android通用界面的每一个步骤
【8月更文挑战第31天】Xamarin.Forms 是一个强大的框架,让开发者通过单一共享代码库构建跨平台移动应用,支持 iOS、Android 和 Windows。使用 C# 和 XAML,它简化了多平台开发流程并保持一致的用户体验。本指南通过创建一个简单的 “HelloXamarin” 应用演示了 Xamarin.Forms 的基本功能和工作原理。
76 0
|
3月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
很多文章都介绍了FTPClient如何连接ftp服务器,但却很少有人说如何连接一台开了SSL认证的ftp服务器,现在代码来了。
100 2