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

android嵌入版

这几天在研究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下面。

groovy 复制代码
publishing {
    publications {
        def fileName = "libs/库名.aar";//注意修改
        def taskId = "pushtomaven";
        println "${fileName}"
        publishing.publications.create(taskId, MavenPublication) {

            artifact "${fileName}"
            groupId GROUP_ID
            artifactId "maven名称"
            version "1.0.14" 
        }
    }
    repositories {
        maven {
            url MAVEN_AAR_RELEASE_URL
            credentials {
                username NEXUS_USERNAME
                password NEXUS_PASSWORD
            }

        }
    }
}

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

自动打包

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

groovy 复制代码
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文件会比上面出来的小,少了很多没有用的资源,还要验证是不是有影响。

相关推荐
BD_Marathon4 小时前
工厂方法模式
android·java·工厂方法模式
王码码20355 小时前
Flutter for OpenHarmony:socket_io_client 实时通信的事实标准(Node.js 后端的最佳拍档) 深度解析与鸿蒙适配指南
android·flutter·ui·华为·node.js·harmonyos
勇气要爆发5 小时前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain
Railshiqian6 小时前
给android源码下的模拟器添加两个后排屏的修改
android·开发语言·javascript
恋猫de小郭7 小时前
Flutter 的真正价值是什么?深度解析再结合鸿蒙,告诉你 Flutter 的真正优势
android·前端·flutter
Ehtan_Zheng7 小时前
我们如何在不减少功能的前提下,将安卓应用体积缩减 60%
android
QING6188 小时前
使用ADB分析CPU性能 —— 基础指南
android·前端·app
大白要努力!8 小时前
Android图片预览功能实战:从需求到上线的完整方案
android·viewpager·图片预览·实战记录·photoview
逍遥德8 小时前
Maven教程.02-基础-pom.xml 使用标签大全
java·后端·maven·软件构建
逍遥德11 小时前
Maven教程.01- settings.xml 文件<profile>使用详解
xml·java·maven