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

相关推荐
千里马学框架17 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台17 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone18 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc18 小时前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo20 小时前
Kotlin 协程中的 Job 结构化并发与取消
android
sun00770020 小时前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼21 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone1 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen1 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone1 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui