Android Jitpack制作远程仓库aar流程

news2024/11/24 1:28:47

开发高效提速系列目录

  1. 软件多语言文案脚本自动化方案
  2. Android Jitpack制作远程仓库aar流程

Android Jitpack制作远程仓库aar流程

  • 背景
  • aar制作与使用
    • 1. aar制作
    • 2. aar使用
  • 异常解决
  • 总结

博客创建时间:2023.08.24
博客更新时间:2023.08.24

以Android studio gradle=8.7,SDKVersion 34来分析讲解。如图文和网上其他资料不一致,可能是别的资料版本较低而已。

背景

多年的Android工作,希望制作一个属于自己的Android 开发库,便于日常的使用。于是想到制作一个远程依赖库,通过比较多种方式,最终选定使用Jetpack的方案。通过自己亲测实验,按照网上一些人写的Jitpack aar制作方法踩了不少坑,最终总结一下制作远程仓库aar包的流程,避免大家踩同样的坑或者使用了不靠谱的方案。

aar制作与使用

1. aar制作

  1. 在制作aar之前先创建一个工程,创建两个library分别为Jitpack和Res,在两个module中分别创建两个类
    在这里插入图片描述

  2. Jitpack和Res的build.gradle文件中配置maven-publish插件
    在这里插入图片描述

  3. 添加jitpack.yml文件,不然会构建远程aar会失败

    jdk:
     - openjdk17
    
    #  如果还要指定特别的版本,还需要输入以下内容:
    #before_install:
    #  - sdk install java 11.0.10-open
    #  - sdk use java 11.0.10-open
    
  4. 在library 的build.gradle文件中配置artifactId参数

    dependencies {
       ...
    }
    afterEvaluate {
        publishing {
            publications {
                // Creates a Maven publication called "release".
                release(MavenPublication) {
                    from components.release
                    groupId = 'com.gitee.xuanyuanxinyu'
                    artifactId = 'Res'
                    version = '1.0.9'
                }
            }
        }
    }
    
  5. 将项目打一个tag取名如v1.2.0,将其pull到远程仓库,然后就能在远程仓库看到新的tag(我用的是gitee)
    [图片]
    [图片]

  6. 然后在https://jitpack.io 搜索你的远程仓库,你会发现jitpack在自动帮你打包制作aar。当让https://jitpack.io 需要进行登陆和配置,这个简单百度一下就好
    [图片]

  7. 打开Jitpack构建日志,发现构建成功,且生成了Res.aar和Jitpack.aar两个,这就是方便我们一个项目中同时制作多个module aar库
    [图片]

2. aar使用

aar远程包制作好后接下来就是如何使用

  1. 在需要使用的Project的settings.gradle中配置远程依赖仓库
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
}
  1. 在需要使用的module中配置库依赖,如我在app模块中依赖使用
implementation 'com.gitee.xuanyuanxinyu:SmartJitpack:1.2.0'

[图片]

  1. 使用aar中的资源[图片]
    [图片]

如果在一个groupId中有多个artifactId,如我这有两个artifactId 为Res和JitPack,如果只想使用其中一个aar则可以差异性配置·

// 仅依赖Res library
implementation("com.gitee.xuanyuanxinyu.SmartJitpack.Res:1.2.0")

// 仅依赖Jitpack  library
implementation("com.gitee.xuanyuanxinyu.SmartJitpack.Jitpack:1.2.0")

// 同时依赖Res和Jitpack library
implementation("com.gitee.xuanyuanxinyu:SmartJitpack:1.2.0")

异常解决

  1. No matching variant of com.android.tools.build:gradle:X.X.0 was found
    Jitpack中提示构建失败,提示错误如下
    [图片]

失败原因
这是因为Java 编译版本错误引起的
解决方案
添加一个jitpack.yml就解决了

jdk:
  - openjdk17

#  如果还要指定特别的版本,还需要输入以下内容:
#before_install:
#  - sdk install java 11.0.10-open
#  - sdk use java 11.0.10-open

总结

最新最简单jitpack制作aar包教程,也可以参考我的Gitee Demo Project,希望能帮助你我他。
gitee地址:https://gitee.com/xuanyuanxinyu/SmartJitpack

参考资料:
Jitpack官方文档:https://docs.jitpack.io](https://docs.jitpack.io
Jitpack Github:https://docs.jitpack.io/
Jitpack官网:https://docs.jitpack.io/


相关链接

  1. 软件多语言文案脚本自动化方案
  2. Android Jitpack制作远程仓库aar流程

扩展链接:

  1. 项目开发混淆从初识到理解

博客书写不易,您的点赞收藏是我前进的动力,千万别忘记点赞、 收藏 ^ _ ^ !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2072376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode刷题之二分算法

目录 简介 第一个错误的版本 算法思路 代码实现 两个数组的交集 算法思路 代码实现 两个数组的交集2 算法思路 代码实现 有效的完全平方数 算法思路 代码实现 猜数字大小 算法思路 代码实现 排列硬币 算法思路 代码实现 寻找比目标字母大的最小字母 代码实…

XTuner微调个人小助手认知实战

1 微调前置基础 本节主要重点是带领大家实现个人小助手微调,如果想了解微调相关的基本概念,可以访问XTuner微调前置基础。 2 准备工作 环境安装:我们想要用简单易上手的微调工具包 XTuner 来对模型进行微调的话,第一步是安装 XTun…

YOLO+Sort实现目标追踪

在前面的目标检测、实例分割的学习中,我们多是对单张图像进行处理,而事实上在我们的实际应用中多数需要对视频进行操作,当然这个操作也是讲视频转换为一帧帧的图像,但博主发现在ultralytics这个算法平台中,针对视频的处…

docker容器基本命令、docker进入容器的指令、容器的备份、镜像底层原理、使用commit命令制造镜像、将镜像推送到阿里云镜像仓库与私服仓库

除了exit 还有 ctrlpq exit退出停止 ctrlpq 退出不停止 将本地镜像推到阿里云 登入阿里云 容器镜像服务 实力列表 镜像仓库 创建镜像仓库 安装里面步骤来 这里192.168.10.145这部分用自己ifconfig地址

虚惊一场的一次事故,在事故中学习

上周日吃着晚饭时,“叮叮”两声,老板在QQ上单独M我。 “服务器好像崩了” “昨天和前天在线人数猛猛下滑 现在更是只有879人在线了” 看完消息,我震惊了,忙用筷子将碗中剩下的饭菜一股脑扒拉到嘴里,来到书桌前坐下&a…

华为OD机试-转盘寿司(C++ Java Python)

题目描述:寿司店周年庆&#xff0c;正在举办优惠活动回馈新老客户。寿司转盘上总共有n盘寿司&#xff0c;prices[i]是第i盘寿司的价格&#xff0c;如果客户选择了第i盘寿司&#xff0c;寿司店免费赠送客户距离第i盘寿司最近的下一盘寿司j&#xff0c;前提是prices[j]<prices…

RISC-V (七)外部设备中断

中断的分类 -本地中断 -software interrupt&#xff08;软终端&#xff09; -timer interrupt&#xff08;定时器中断&#xff09; -全局中断 -external interrupt&#xff08;外部中断 &#xff09; qemu主要是参考FU540-C000这款芯片做出来的&#xff0c;可以经常看一下这款…

学习yolo+Java+opencv简单案例(三)

主要内容&#xff1a;车牌检测识别&#xff08;什么颜色的车牌&#xff0c;车牌号&#xff09; 模型作用&#xff1a;车牌检测&#xff0c;车牌识别 文章的最后附上我的源码地址。 学习还可以参考我前两篇博客&#xff1a; 学习yoloJavaopencv简单案例&#xff08;一&#xff0…

ES5到ES6 js的语法更新

js是一门弱语言类型&#xff0c;为了实现更有逻辑的代码&#xff0c;需要不断更新语法规范&#xff0c;es就是用来规范js语法的标准。 09年发布了es5&#xff0c;到15年发布es6&#xff0c;到现在es6泛指es5.1以后的版本es2016&#xff0c;es2017。 var、let、const 关键字&…

Promise学习之基本方法

前言 上一篇章我们学习了Promise的概念、基本使用、状态等等&#xff0c;对于Promise也有了基础的了解&#xff0c;那本章就对与Promise的方法作基本学习&#xff0c;去了解了解Promise提供了什么方法。 一、then then处理Promise返回结果&#xff0c;接收两个回调函数 第一…

新建一个基于标准新建一个基于标准固件库的工程模板固件库的工程模板(实现LED单灯闪烁)

实验报告原件在资源可选择性下载 一、实验目的&#xff1a; 1.了解STM32固件库&#xff1b; 2.掌握STM32固件库关键子目录及固件库关键文件&#xff1b; 3.能够新建一个基于标准固件库的工程模板并完成编译 二、实验器材&#xff1a; 笔记本或电脑。 三、实验内容&#…

大投资模型 arxiv 量化论文

郭建与沉向阳 摘要 传统的量化投资研究面临着回报递减以及劳动力和时间成本上升的问题。 为了克服这些挑战&#xff0c;我们引入了大型投资模型&#xff08;LIM&#xff09;&#xff0c;这是一种新颖的研究范式&#xff0c;旨在大规模提高绩效和效率。 LIM 采用端到端学习和通…

数据结构系列-归并排序

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 归并排序 递归版本 首先&#xff0c;我们来看一下归并的示意图&#xff1a; 这是归并排序当中分解的过程。 然后便是两个两个进行排序&#xff0c;组合的过程。 归并完美的诠释…

docker镜像,ip,端口映射,持久化

docker 镜像的迁移&#xff1a;导出和导入镜像 查看镜像&#xff1a; [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc9764 2 years ago 231MB 打包 将镜像打包&#xff0c;找到save,可以将…

远程在电脑上玩PS5《黑神话:悟空》?借助极空间实现PS5远程串流攻略

远程在电脑上玩PS5《黑神话&#xff1a;悟空》&#xff1f;借助极空间实现PS5远程串流攻略 哈喽小伙伴们好&#xff0c;我是Stark-C~ 这两天的《黑神话&#xff1a;悟空》可谓是火爆出圈呀&#xff01;虽说我也是第一时间体验到了这款可以说是划时代意义的首款国产3A大作&…

maven 依赖管理(4)

依赖就是项目里运行的jar 一个项目可以设置多个依赖 这种的 1.依赖传递 直接依赖&#xff1a;就是当前自己的项目pom里的依赖 间接依赖&#xff1a;在自己pom文件引入别人的项目 就能共享到别人项目的依赖 2.依赖传递冲突问题 路径优先&#xff1a;出现相同依赖&#xff0…

华为数通方向HCIP-DataCom H12-821题库(更新单选真题:1-10)

第1题 1、下面是一台路由器的部分配置,关于该配置描述正确的是? [HUAWEllact number 2001 [HUAWEl-acl-basic-2001]rule 0 permit source 1.1.1.1 0 [HUAWEl-acl-basic-2001]rule 1 deny source 1.1.1.0 0 [HUAWEl-acl-basic-2001]rule

SSRF+Redis+Fastcgi

目录 1、打redis 2、打fastcgi 3、SSRF绕过 4、SSRF防御 1、打redis ssrfme靶场实战 页面直接给出了代码&#xff0c;过滤了file: dict ,等等 但是下面我们看到只要有info就能打印phpinfo() 通过phpinfo()打印的信息&#xff0c;发现有内网其他服务器的ip 直接访问 发现…

漏洞挖掘 | 浅谈一次edusrc文件上传成功getshell

0x1 前言 这里记录一下我在微信小程序挖人社局等一些人力资源和社会保障部信息中心漏洞&#xff0c;人社这类漏洞相对于web应用端的漏洞来讲要好挖很多&#xff0c;里面的WAF过滤等一些验证也少。比如你在开始学习src漏洞挖掘&#xff0c;就可以从微信小程序下手。 一般像这类…

Python编码系列—Python CI/CD 实战:构建高效的自动化流程

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…