升级Gradle7后出现com.github.dcendents.android-maven插件应用失败报错
问题根因
com.github.dcendents.android-maven为已停止维护的第三方Maven发布插件,最终版本仅适配Gradle 6.x及更低版本,Gradle 7移除了该插件依赖的大量内部API,所有针对旧版本的临时兼容方案都无法在AGP 7.1.3 + Gradle 7.2环境下正常运行。
解决步骤
1. 清理旧插件残留配置
- 打开项目根目录
build.gradle,在buildscript.dependencies代码块中删除所有和android-maven相关的依赖,典型配置为classpath 'com.github.dcendents:android-maven-gradle-plugin:xxx',直接移除该行。 - 遍历所有子模块(尤其是需要发布产物的Library模块)的
build.gradle文件,删除顶部的apply plugin: 'com.github.dcendents.android-maven'插件引用行。
2. 替换为官方maven-publish插件
AGP 7.x已完整适配Gradle官方提供的maven-publish插件,无需依赖第三方插件即可实现Maven产物发布:
- 打开需要发布AAR的模块对应的
build.gradle文件,在plugins代码块中引入官方插件:
plugins { id 'com.android.library' id 'kotlin-android' id 'maven-publish' }
- 在该文件android代码块的同级位置,添加发布配置,原有旧插件的坐标、仓库配置可直接平移:
afterEvaluate { publishing { publications { release(MavenPublication) { from components.release // 以下三个参数和旧android-maven插件配置保持一致即可 groupId = "你的项目groupId" artifactId = "你的库artifactId" version = "版本号" } } repositories { // 配置你的发布目标仓库,本地Maven、私有Maven、JitPack仓库规则和旧插件完全一致 maven { url = uri("${rootProject.buildDir}/local-repo") } } } }
3. JitPack环境适配(如果使用JitPack发布)
如果项目通过JitPack发布,在项目根目录新建jitpack.yml文件,指定构建JDK版本匹配项目配置:
jdk: - openjdk11
清理所有残留的旧android-maven相关配置项,避免触发插件查找逻辑抛出原始错误。
4. 重新同步验证
点击Android Studio顶部的Sync Project with Gradle Files按钮触发同步,同步完成后即可正常编译。发布任务可在Gradle侧边栏的publishing分组下找到对应publishReleasePublicationToMavenRepository任务执行,使用逻辑和旧插件一致。
内容的提问来源于stack exchange,提问作者lannyf
相关产品推荐
相关产品推荐

