android 库依赖管理之一aar依赖

本文详细介绍了使用Gradle进行依赖管理的方法,包括不同类型的依赖源(公共Maven库、私有Maven库、本地仓库、aar文件及模块直接依赖),并提供了三种具体的配置方案示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖分为公共mavn库依赖,私有maven库依赖,本地仓库依赖,aar依赖,module直接依赖。

方案1:

repositories {
      flatDir {
        dirs 'libs'
      }
   }  
dependencies {
    compile(name:'cards', ext:'aar')
}

方案2:新建一个jar/aar Module,选择aar 文件,然后新建的Module 目录下,就会多了个build.gradle 和xxx.aar。

configurations.maybeCreate("default")
artifacts.add("default", file('mylibrary-debug.aar'))

方案3:批量引用
设置脚本,在project根目录下buildsystem/util.gradle

/**
 * 是否是module依赖方式
 * @return
 */
def isDepModule()
{
    return  "1".equals(DEPENDENCIES_MODULE);
}

/**
 * 设置aar库的path
 * @param project
 */
def setAARDirs(Project project)
{
    project.repositories {
        flatDir {
            dirs 'libs','libs/aars','libs/aars/default'      //dirs 'libs','libs/aars','libs/aars/default'
        }
    }
}

/**
 * 添加aar依赖库
 * @param dh
 * @param ft
 * @param isDepModule
 * @return
 */
def addAARLibs(Project project, boolean isDepModule = false)
{
    DependencyHandler dh = project.dependencies;
    ConfigurableFileTree ft = project.fileTree(dir: 'libs', include: '**/*.aar');
    ft.each { File f ->
        //default目录下的aar是一直要依赖的,aars目录下的aar是替代module的
        if(f.parentFile.name.equals('default') || !isDepModule && f.parentFile.name.equals('aars'))
        {
            dh.add("compile", [name: f.name.lastIndexOf('.').with { it != -1 ? f.name[0..<it] : f.name }, ext: 'aar'])
        }
    }
}

ext{
    isDepModule = this.&isDepModule         //是否是module依赖方式
    setAARDirs = this.&setAARDirs           //设置aar库的path
    addAARLibs = this.&addAARLibs           //添加aar依赖库
}

在project的根目录下的buidl.gralde顶部引入util.gralde

apply from: 'buildsystem/util.gradle'

在需要的引用aar的modul的build.gradle中设置aar路径,级联依赖时,在依赖链上的每个module中都要添加路径,不然找不到。

//在android节点中或者在最外层都可以
repositories {
    rootProject.ext.setAARDirs(project);
}

在dependencies中引入

rootProject.ext.addAARLibs(project, false);

转载于:https://my.oschina.net/bruces/blog/1422876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值