您的位置:首页 > 科技 > IT业 > Android - 利用 jitpack 免费发布闭源 aar

Android - 利用 jitpack 免费发布闭源 aar

2024/11/18 13:16:03 来源:https://blog.csdn.net/CSDN_LQR/article/details/140083652  浏览:    关键词:Android - 利用 jitpack 免费发布闭源 aar

一、简述

目前(Android/java) library 的主要发布仓库有 MavenCentraljitpack,我之前也对这两种仓库的发布流程做了详细介绍:

  • 发布至 MavenCentral: https://juejin.cn/post/6953598441817636900
  • 发布至 jitpack: https://juejin.cn/post/7040733114506674183#heading-8

但是,以上两种仓库,一般是用来免费发布开源 library 的,在提交库信息时,就会要求填写开源仓库的 url,如果我们不想开源源代码,仅仅只是希望把混淆后的 aar/jar 发布出去,那么上述两篇文章的流程就行不通了。

一般来说,这些平台也会提供付费服务,支持发布闭源的 library,就比如 jitpack 付费之后,才可以导入私有的 GitHub 仓库(即 private repo),从而构建并发布闭源的 library,可这笔费用不低的,具体费用见官网说明:

  • jitpack 官网:https://jitpack.io/
  • jitpack 付费价格:https://jitpack.io/private#subscribe

那有没有办法做到,既能免费又能闭源地发布 library 呢?Yes,这就是本篇要讲述的主要内容,灰常实用。

二、创建 library

温馨提示:这里只是举个简单的例子,熟悉 Android library 的朋友可以直接跳到下一节。

不管是 jar 还是 aar,对于 Android 开发者来说,都是 library,只是它们的 module 类型不同而已,简单来说,aar 是可以包含资源文件的 jar,功能更加强大,这里以 aar 为例,创建一个 android library module:

为了新手容易理解,这里有几点简单说明一下:

  1. com.android.library:是 android library module 使用的 Gradle 插件,android {} 是该插件的配置项,最终产出的库文件是 *.aar
  2. minifyEnabled:是否开启混淆,默认为 false。
  3. proguard-rules.pro:当前 library 编译时的混淆规则(minifyEnabledtrue 时生效),对生成最终的 aar 文件有影响。
  4. consumer-rules.pro:携带在 aar 文件中的混淆规则,对 别人工程 编译时的混淆规则有影响。

注:java library module 使用的 Gradle 插件是 java-libraryapply plugin: 'java-library'),没有 android{} 配置项,如需混淆,则需要依赖其他 Gradle 插件,有需要的可以看我之前写的另一篇文章。
Android - 混淆 java-library 工程:https://juejin.cn/post/7174443107298050061

// build.gradle
apply plugin: 'com.android.library'android {...defaultConfig {...versionCode 1versionName "1.0"consumerProguardFiles "consumer-rules.pro"}buildTypes {release {minifyEnabled true // 开启混淆proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'com.google.android.material:material:1.1.0'implementation 'com.luffykou:android-common-utils:1.1.3'
}

这里我创建的 library 功能非常简单,可以将一个图片 Bitmap 转成 Base64 字符串:

/*** GitLqr 工具类** @author LQR* @since 2024/6/22*/
public class GitLqrUtil {/*** bitmap 转 base64*/public static String bitmapToBase64(Bitmap bitmap) {return Base64<

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com