KMM多模块项目共享com.apollographql.apollo3 Gradle插件遇报错
解决Apollo3插件在共享Gradle脚本中无法解析的问题
以下是针对你遇到的问题的几种排查和解决方向:
1. 统一管控插件版本或直接声明版本
Gradle的插件解析逻辑要求,要么在plugins块里直接指定版本,要么通过pluginManagement的版本策略预先指定。
方案A:在settings.gradle.kts中统一配置版本
在根目录的settings.gradle.kts里,给Apollo3插件添加版本解析规则:
pluginManagement { repositories { gradlePluginPortal() // 保留你已有的其他仓库配置 } resolutionStrategy { eachPlugin { if (requested.id.id == "com.apollographql.apollo3") { // 替换为你实际使用的Apollo3版本号 useVersion("4.0.0") } } } }
方案B:在共享脚本中直接声明版本
修改shared-library.gradle.kts的plugins块,直接指定Apollo3插件的版本:
plugins { // 如果是给子模块间接引用,用apply false;如果要直接生效则去掉 id("com.apollographql.apollo3") version "4.0.0" apply false // 你的其他通用插件配置 }
2. 确认自定义共享插件的配置结构
如果你是通过预编译脚本插件(precompiled script plugins)实现的commons.shared-library,需要确保:
- 共享脚本放在正确的目录:比如
gradle/plugins/shared-library.gradle.kts,并在settings.gradle.kts中添加includeBuild("gradle/plugins") - 共享脚本中的插件依赖是通过
plugins块声明的,而非废弃的buildscript块(buildscript的依赖不会被子模块继承)
3. 清理Gradle缓存并重新同步
缓存异常可能导致插件解析失败,执行以下命令清理后重新同步:
./gradlew clean build --refresh-dependencies
之后在Android Studio中点击「Sync Project with Gradle Files」按钮。
4. 验证插件ID的正确性
确认你使用的Apollo3版本对应的插件ID正确,当前最新版Apollo3的官方插件ID确实是com.apollographql.apollo3,如果是较旧版本,可能需要核对版本对应的插件ID是否有变更。
内容的提问来源于stack exchange,提问作者Calin
相关产品推荐
相关产品推荐

