Gradle依赖本地aar包

一.本地仓库的方式(推荐)

1.生成本地aar仓库

step1.在项目Module build.gradle中添加gradle代码

例如:library/build.gradle

apply plugin: 'com.android.library'
apply plugin: 'maven'

android{...}

dependencies{...}

group = 'com.pm.qrcode'
version = '0.1.1'

uploadArchives {
    repositories {
        mavenDeployer {
            //提交到远程服务器:
            /* repository(url: "http://www.xxx.com/repos") {
                authentication(userName: "admin", password: "admin")
             }*/
            //本地的Maven地址
            repository(url: uri('../repositories'))
//            pom.groupId = group
            pom.version  = version
            pom.artifactId = 'qrcode'
        }
    }
}

step2. Android Studio 执行uploadArchives Task生成本地仓库

2.依赖本地aar仓库

step1. 在需要使用的项目根目录build.gradle中添加本地仓库地址

buildscript {
    repositories {
        maven {
            url(https://blog.csdn.net/"file://"%20+%20project.rootDir.absolutePath%20+%20"/repositories")
        }
        google()
        jcenter()
    }
}

allprojects {
        maven {
            url(https://blog.csdn.net/"file://"%20+%20project.rootDir.absolutePath%20+%20"/repositories")
        }
        google()
        jcenter()
    }
}

step2. 在需要使用的Moudle build.gradle中

    implementation 'com.pm.qrcode:qrcode:0.1.1'

注意:有时候遇到依赖需要传递的时候,需要transitive = true 如下:

implementation('com.pm.hybridsdk:hybridsdk:0.0.1') {
        transitive = true
    }

二.编译生成aar包的方式

step1.在项目Moudle 节点执行build Task生成xxx-debug.aar 和 xxx-release.aar包

step2.拷贝aar包到使用的项目中libs下,在build.gradle中

android{...}
repositories {
    flatDir {
        dirs 'libs'
    }
}
dependencies{
    implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')

}

或者拷贝aar包到项目根目录repos下,在项目根目录build.gradle中声明仓库

buildscript {
    repositories {
        google()
        jcenter()
        flatDir {
            dirs '../repos'
        }
    }
}

allprojects {
        google()
        jcenter()
        flatDir {
            dirs '../repos'
        }
    }
}

step3. 在需要使用的Moudle build.gradle中声明依赖

implementation(name: 'hybridsdk-release', ext: 'aar')

总结:两种方式对比,第二种方式有弊端,如果我们的aar包中又有依赖三方的库,比如:Rxjava,EventBus等。这时候三方的依赖不会被编译进我们的aar包中,那么在使用aar包就会有问题。这种情况我们只能采用第一种方式(本地仓库的方式)。如果我们的aar包完全没有依赖三方的库,那么我们可以采用第二种方式(编译生成aar包的方式),简单快捷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值