如何在离线环境中运行Gradle kotlin-dsl插件
解决方案
1. 调整插件仓库配置
Gradle默认从官方插件中心拉取插件,你需要显式指定插件从本地Maven仓库读取,在项目根目录的settings.gradle.kts中添加如下配置:
pluginManagement { repositories { // 优先从本地Maven仓库查找插件 mavenLocal() // 如果依赖存放在自定义本地目录,可指定路径: // maven { url = uri("file:///你的本地依赖存储路径") } } }
如果需要全局生效,可将上述配置放到~/.gradle/init.d/offline.gradle(Windows路径为C:\Users\<用户名>\.gradle\init.d\offline.gradle)中,不需要每个项目单独配置。
2. 开启Gradle离线模式
运行Gradle任务时添加--offline参数,或在项目/全局gradle.properties中添加配置org.gradle.offline=true,强制Gradle仅使用本地已缓存的依赖,不会尝试联网请求。
3. 检查依赖完整性
你当前已有的依赖缺少Kotlin DSL核心运行时组件,需要补充以下Maven依赖:
<dependency> <groupId>org.gradle.kotlin</groupId> <artifactId>gradle-kotlin-dsl</artifactId> <version>1.4.9</version> </dependency> <dependency> <groupId>org.gradle.kotlin</groupId> <artifactId>gradle-kotlin-dsl-tooling-models</artifactId> <version>1.4.9</version> </dependency> <dependency> <groupId>org.gradle.kotlin</groupId> <artifactId>gradle-kotlin-dsl-conventions</artifactId> <version>1.4.9</version> </dependency>
同时确认所有依赖的目录结构与Maven规范一致,存放在你配置的本地仓库路径下,没有文件缺失。另外需要注意kotlin-dsl 1.4.9仅适配Gradle 6.8及以上版本,需保证你本地安装的Gradle版本匹配。
备选兼容方案
如果调整插件仓库后仍无法识别插件,可放弃plugins块的声明方式,改用buildscript块直接声明依赖,绕过插件解析规则:
在build.gradle.kts头部添加如下配置:
buildscript { repositories { mavenLocal() } dependencies { classpath("org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:1.4.9") } }
内容的提问来源于stack exchange,提问作者user8681
相关产品推荐
相关产品推荐

