Gradle 7.0.2应用com.github.dcendents.android-maven插件报错如何解决?
报错原因
核心根源为插件与Gradle版本不兼容
com.github.dcendents.android-maven插件已停止维护,最高仅支持Gradle 6.x版本。当前使用的Gradle 7.0.2版本移除了插件依赖的内部类org/gradle/api/publication/maven/internal/MavenPomMetaInfoProvider,导致插件初始化时找不到对应类触发报错。- 配置中使用的2.1版本插件同样未适配Gradle 7+版本,所以无论切换1.4还是2.1版本都无法解决兼容问题。
解决方案
方案1:降级Gradle版本(适配原有插件配置)
如果不想修改现有插件配置,可以将Gradle版本降级到6.x稳定版,推荐使用6.8.3版本。修改项目根目录下gradle/wrapper/gradle-wrapper.properties文件中的distributionUrl参数:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
修改后重新同步项目即可正常使用原插件。
方案2:替换为官方maven-publish插件(推荐,适配高版本Gradle)
Gradle官方提供了maven-publish插件替代第三方非维护插件,适配所有Gradle 7+版本,修改配置如下:
- 移除原有
com.github.dcendents.android-maven插件依赖,替换为官方插件:
plugins { id "com.jfrog.bintray" version "1.7.3" id "maven-publish" }
- 添加对应的maven发布配置,示例如下:
afterEvaluate { publishing { publications { // 配置release构建的发布信息 release(MavenPublication) { from components.release groupId = "替换为你的组ID" artifactId = "替换为你的组件ID" version = "替换为你的版本号" // 可选:配置pom信息 pom { name.set("组件名称") description.set("组件描述") } } } } }
原有bintray上传配置仅需调整指向对应publication即可正常使用,无需做大幅修改。
内容的提问来源于stack exchange,提问作者MUHAMMAD JAMAL
相关产品推荐
相关产品推荐

