Android中打包发布的方式


在开发过程中,往往需要将公共的模块打包发布,场景有:

  1. 在存在许多模块的项目中,为了减少每次构建因为编译所有模块造成的时间长的问题,可以将每个模块打包成AAR并发布的本地,每次编译只需编译有改动的模块,可以减少编译时间。
  2. 对于公共模块,可以将其打包并发布到远程仓库,用Gradle管理供所有人使用。这对于SDK开发人员是经常遇到的。

对于以上场景中,打包可以节约开发成本。常见的打包格式有两种:jar格式和aar格式。

jar格式和aar格式的区别

参考文章jar包与aar包的区别

jar格式的打包上传方式

加入需要将一个模块打包成jar包并上传的Maven仓库,该模块下的gradle文件如下所示:

// 引入 groovy 和 java 插件
apply plugin: 'groovy'
apply plugin: 'maven'

group='com.hc.plugin'
version='1.0.0'

uploadArchives {
    repositories {
        mavenDeployer {
       		//上传路径为本地路径
            repository(url: uri('/Users/zengwenbing/Desktop/WorkSpace/work2/GradleExample/repos'))
            //外面定义了version,这里也可以修改version
//            pom.version = '0.0.1'
//            pom.artifactId = 'myplugin'
        }
    }
}

repositories {
    jcenter()
}

dependencies {
    implementation gradleApi()
    implementation localGroovy()
}

sync后对应本地路径的文件如图所示:
在这里插入图片描述

aar格式的打包上传方式

首先一个模块在编译后会在build/output/aar路径下生成对应的aar文件,生成aar的方式参考官方文档。这里有一个名为module2的模块,点击Gradle中build/assemble后生成的aar文件如图:
在这里插入图片描述
定义发布文件publish.gradle:

apply plugin: 'maven-publish'
publishing {
    repositories {
        maven {
            // change to point to your repo, e.g. http://my.org/repo
            //上传路径为本地路径
            url = "file://${rootProject.projectDir.absolutePath}/project-maven"
        }
    }

    publications {
        println "publishing publications"
        VCamSDK(MavenPublication) {
            groupId = 'com.zy.easygradle'
            artifactId = 'ApiDemo'
            version = '1.0.1.a'
            artifact "${project.buildDir}/outputs/aar/module2-debug.aar"
//            artifact androidSourcesJar
//            from components.java
        }
    }
}

然后在module2模块的gradle文件中加上即可:

apply from: rootProject.getProjectDir().getAbsolutePath() + '/publish.gradle'

编译module2模块后点击Gradle中publishing/publish后会在对应路径生成相应的文件,如图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值