当前位置: 首页 > news >正文

android下library打包aar并上传到maven,嵌入版的app

android嵌入版

    • 准备工作
    • 简化代码到三方app
    • 上传maven
    • 自动打包
    • 上面已经完成了library到三方app的流程

这几天在研究android下怎么把自己的项目当作一个library给到另一个app做嵌入使用,把这些记录下来,方便以后参考

准备工作

1.需要了解一些gradle 命令打包的知识
2.了解publish推送maven的知识

简化代码到三方app

我们把自己的项目简称A,三方项目简称B
1.我们需要先把自己项目A,进行简化,因为项目B不一定需要我们所有的功能,我们只用保留项目B使用的功能即可。
2.在项目B中新建moudle,并且命名library的名称
3.在新建成功后,复制项目A的libs,src二个文件过到项目B的library下
4.修改library下的build.gradle文件的依赖和报错
5.在项目B的build下面找到assemble执行,会在build的outputs生成aar包。
6.可以在项目B的app下面添加Implementation project(‘library名称’) 验证

上传maven

1.在上面打好aar包后,在build的outputs下面找到aar,拷贝到libs下面
2.在library的build.gradle下面放入push代码,代码里变量的定义在gradle.properties下面。

publishing {publications {def fileName = "libs/库名.aar";//注意修改def taskId = "pushtomaven";println "${fileName}"publishing.publications.create(taskId, MavenPublication) {artifact "${fileName}"groupId GROUP_IDartifactId "maven名称"version "1.0.14" }}repositories {maven {url MAVEN_AAR_RELEASE_URLcredentials {username NEXUS_USERNAMEpassword NEXUS_PASSWORD}}}
}

3.点击library下的publishing的publish开始上传,成功即可。这个上传只能添加,不能删除。

自动打包

这个是简化代码成功后,从打包到上传的linux命令操作,方便我们自动化操作,减轻错误代码

rm -rf ../项目名/库名/build/outputs/aar/*
cd ../项目名
gradle -continue 库名:build
//这个步可以不要,我是修改了包名
mv ../项目名/库名/build/outputs/aar/包名.aar ../项目名/库名/build/outputs/aar/包名.aar
rm -rf ../项目名/库名/libs/包名.aar
cp ../项目名/库名/build/outputs/aar/包名.aar ../项目名/库名/libs/
gradle -continue 库名:publish

上面已经完成了library到三方app的流程

但是如果,三方代码很多,我们想简化对三方app的依赖。
1、我们需要新建一个新项目,新建一个library到新的项目里
2、引入对三方app的依赖,只保留三方app中被用到的代码
注意:这里会有问题,因为简化了代码,所以打出来的R文件会比上面出来的小,少了很多没有用的资源,还要验证是不是有影响。

http://www.lryc.cn/news/295298.html

相关文章:

  • Xampp中Xdebug的安装使用
  • 金融行业的软件测试分析
  • 踩坑了,MySQL数据库生成大量奇怪的大文件
  • ctfshow-web11~20-WP
  • 2.5学习总结9
  • 删除.git的影响、git分支切换时注意事项
  • Linux系统调试课:硬件断点
  • 百卓Smart管理平台 uploadfile.php 文件上传漏洞复现(CVE-2024-0939)
  • 关于RabbitMQ常见的十道面试题
  • spring cloud stream
  • vue3 之 组合式API—watch函数
  • 并发容器【ConcurentHashMap、CopyOnWriteArrayList、阻塞队列、ArrayBlockingQueue】
  • EmoLLM-心理健康大模型
  • 学成在线:采用XXL-JOB任务调度方案使用FFmpeg处理视频转码业务
  • 计算机毕业设计 | SpringBoot大型旅游网站 旅行后台管理系统(附源码)
  • 蓝桥杯----凑算式
  • JCTC | 利用几何深度学习对蛋白质-配体结合pose进行等变灵活建模
  • 执行 terraform init 命令时 timeout 的解决方法
  • Docker Arthas 实战指南
  • freertos 源码分析四 任务创建的简单分析
  • 二叉树的锯齿形遍历,力扣
  • 避免Arrays.asList陷阱:优雅处理结构性修改的方法
  • 微信小程序(三十六)事件传参
  • 编译原理与技术(三)——语法分析(二)自顶向下-递归下降
  • okhttp 的 拦截器
  • Android:多线程下载网络图片
  • 跟着GPT学设计模式之原型模式
  • 博客|基于Springboot的个人博客系统设计与实现(源码+数据库+文档)
  • 【gcc】webrtc发送侧计算 丢包率
  • elementui上传文件不允许重名