JitPack发布一个你自己的 Android 依赖库

Posted 邹奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JitPack发布一个你自己的 Android 依赖库相关的知识,希望对你有一定的参考价值。

文章目录

背景


最近突然想开发个 android Library,提供 Android 依赖库给其他开发者简单使用。

前期踩坑略多,这里做个记录。

步骤

新建 Android Library 项目


新建一个 Project 工程,再新建一个 Library 模块 taostfree。项目结构如下:


githubzouqi/toastfree 工程地址

有疑问的同学可以查看工程结构,这里就不细说了。

配置 Gradle


  • toastfree 模块下的 build.gradle 文件中添加 maven-publish 插件
plugins 
    id 'com.android.library'
    id 'maven-publish'

  • 添加上传方法(官方建议)
dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    ...


afterEvaluate 
    // 官方建议使用上传方法
    publishing 
        publications 
            // Creates a Maven publication called "release".
            release(MavenPublication) 
                from components.release // 表示发布 release(jitpack 都不会使用到)
                groupId = 'com.github.githubzouqi' //groupId 随便取 , 这个是依赖库的组 id
                artifactId = 'toastfree'  //artifactId 随便取 , 依赖库的名称(jitpack 都不会使用到)
                version = '1.0.5' // 当前版本依赖库版本号,这个jitpack不会使用到,只是我们开发者自己查看
            
        
    

这里没啥可说的,上面注释已经写的很详细。

  • 完整 gradle 配置
plugins 
    id 'com.android.library'
    id 'maven-publish'


android 
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig 
        minSdkVersion 19
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        consumerProguardFiles 'consumer-rules.pro'
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        
    




dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'


afterEvaluate 
    // 官方建议使用上传方法
    publishing 
        publications 
            // Creates a Maven publication called "release".
            release(MavenPublication) 
                from components.release // 表示发布 release(jitpack 都不会使用到)
                groupId = 'com.github.githubzouqi' //groupId 随便取 , 这个是依赖库的组 id
                artifactId = 'toastfree'  //artifactId 随便取 , 依赖库的名称(jitpack 都不会使用到)
                version = '1.0.5' // 当前版本依赖库版本号,这个jitpack不会使用到,只是我们开发者自己查看
            
        
    



提交项目到 github


这个也是比较简单,同学们自己根据实际来提交即可。

我这里是已经提交过了,说下我的操作:关联远程库,提交到暂存区,拉取远端开发分支(我这里是 dev)到本地,然后合并,合并成功后再 push 到远端开发分支即可。


上面是我通过 Git Bash 的一次完整的提交过程,仅供参考。

Pull Request 到主分支


后面是通过给主分支创建 tag 分支,打 release 包。所以我这里会先拉取一下从 dev 分支到主分支的请求。

熟悉 github 的同学也比较了解,这里不多细说。







上面就是一次完整的 pull requests,仅供参考。

创建 tag 并发布 release 版本


我这里创建 tag 使用 github 做演示,同学们熟悉 git 命令的可以使用命令进行创建。

  • 进到 release 打包页。如下图:

这里能看到所有打过的 release 版本信息。

  • 新建 tag 并发布 release

输入新分支名称后点击回车,即可创建 tag v1.0.6 。


到这里就完成了 github 相关的 release 打包操作。

JitPack 生成项目的依赖库


打开 JitPack 官网 https://jitpack.io/,输入项目地址。点击 Look Up,然后等待 builds 完成后生成库依赖。

等待 Get it 按钮变成绿色后,就表示生成库依赖成功了。

使用也比较简单,如下:

第三方应用集成使用依赖库


  • project 下的 build.gradle 文件中配置
allprojects 
    repositories 
    	...
        maven url 'https://jitpack.io' 
    

  • 模块下的 build.gradle 中添加依赖
dependencies
	...
	implementation 'com.github.githubzouqi:ToastFree:v1.0.6'

然后 sync 重新构建一下项目,成功后可以发现依赖添加成功了。

  • MainActivity.java 中使用依赖库

    上面说明依赖库成功添加,可以使用库里的 api

JitPack 生成依赖库的 pom.xml 文件地址

https://javadoc.jitpack.io/com/github/github用户名/github项目名/


输入对应的版本路径即可查看对应版本库里的所有文件(也包括 pom.xml 文件)。

参考链接


JitPack > Android

发布Android库到Jitpack,只需三步

使用jitpack发布你自己的依赖库

gradle7.0.2如何发布jitpack开源项目

关于Jitpack发布aar,会丢失内置依赖库问题


技术永不眠!我们下期见!

以上是关于JitPack发布一个你自己的 Android 依赖库的主要内容,如果未能解决你的问题,请参考以下文章

JitPack发布一个你自己的 Android 依赖库

JitPack发布一个你自己的 Android 依赖库

Android Studio发布库到JitPack

Android Studio发布库到JitPack

“Android Gradle 插件需要 Java 11 才能运行”在发布 jitpack 库时

Android/Jitpack:无法导入子模块