Gradle 8.0+下创建依赖其他AAR的AAR库模块方法咨询
Gradle 8.0+ 引入AAR文件的优化方案
方案1:本地Maven仓库(推荐,支持AAR间依赖)
这是批量管理AAR最省心的方式,还能自动处理AAR之间的依赖关系:
- 在项目根目录建个
local-repo文件夹作为本地Maven仓库(名字可自定义) - 写个Gradle任务自动把
libs目录下的所有AAR发布到本地仓库,将这段代码放到根目录的build.gradle中:
task publishLocalAars { doLast { def aarDir = file('libs') // 你的AAR存放目录,可按需修改 aarDir.eachFileMatch(~/.*\.aar/) { aarFile -> def groupId = 'com.yourteam.local' // 自定义组名 def artifactId = aarFile.name.replace('.aar', '') def version = '1.0.0' // 自定义版本号 exec { commandLine './gradlew', 'publishToMavenLocal', "-PgroupId=$groupId", "-PartifactId=$artifactId", "-Pversion=$version", "-PaarPath=${aarFile.absolutePath}" } } } }
- 在
settings.gradle里添加本地仓库地址:
dependencyResolutionManagement { repositories { mavenLocal() // 保留你原有的其他仓库,比如mavenCentral() } }
- 之后在模块里就能像引入远程库一样添加依赖:
implementation 'com.yourteam.local:your-aar-name:1.0.0'
若AAR之间存在依赖,发布时配置好对应关系,Gradle会自动解析依赖链。
方案2:FlatDir仓库(快速单模块引入)
Gradle 8.0+虽对FlatDir有使用限制,但仍可用于快速导入少量AAR:
- 在模块的
build.gradle里配置FlatDir仓库:
repositories { flatDir { dirs 'libs' // AAR所在目录 } }
- 直接引入AAR,注意填写不带后缀的文件名:
implementation(name: 'your-aar-filename', ext: 'aar')
提醒:这种方式无法自动处理AAR之间的依赖,所有关联的AAR都需手动引入。
方案3:通用AAR整合模块
如果你的AAR集合固定,不想重复配置依赖逻辑,可创建统一的导入模块:
- 新建一个Android Library模块(比如命名为
aar-collection),将所有AAR放到它的libs目录 - 在这个模块的
build.gradle中用FlatDir配置好所有AAR依赖 - 其他模块只需依赖这个整合模块即可:
implementation project(':aar-collection')
内容的提问来源于stack exchange,提问作者冰珊孤雪
相关产品推荐
相关产品推荐

