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

相关推荐
风槐啊26 分钟前
六、Java 基础语法(下)
android·java·开发语言
皮皮虾在睡觉1 小时前
数据库基础04
android·数据库
彭于晏6894 小时前
Android高级控件
android·java·android-studio
大白飞飞5 小时前
IDEA创建、导入、删除maven项目
java·maven·intellij-idea
666xiaoniuzi9 小时前
深入理解 C 语言中的内存操作函数:memcpy、memmove、memset 和 memcmp
android·c语言·数据库
TheManba10 小时前
04. maven 三种项目打包方式 pom、jar、war 的区别(记一次 Spring 项目启动报错)
spring·maven·jar
沐言人生13 小时前
Android10 Framework—Init进程-8.服务端属性文件创建和mmap映射
android
沐言人生13 小时前
Android10 Framework—Init进程-9.服务端属性值初始化
android·android studio·android jetpack
沐言人生14 小时前
Android10 Framework—Init进程-7.服务端属性安全上下文序列化
android·android studio·android jetpack