运行Kotlin脚本时出现Unresolved reference: Repository错误
解决Kotlin脚本中@file:Repository和@file:DependsOn未识别问题
问题分析
你遇到的unresolved reference: Repository/DependsOn错误,是因为这两个注解不属于Kotlin核心库,而是Kotlin JVM脚本依赖解析扩展提供的功能,默认情况下脚本环境可能没有加载对应的支持组件。
解决步骤
确保脚本类型正确
确认你的文件后缀是.kts,并且在IntelliJ中被识别为「Kotlin Script (JVM)」类型(右键文件→「Open As」→「Kotlin Script」)。普通Kotlin文件(.kt)不支持这类脚本注解。修正环境变量写法
KTS脚本中无法直接识别%M2_HOME%这种Windows环境变量格式,换成Kotlin支持的系统变量获取方式:@file:Repository("file://${System.getenv("M2_HOME")}/repository")或者直接写本地仓库的绝对路径,比如
file://C:/Users/xxx/.m2/repository。显式引入脚本依赖解析库
如果IDE自动加载扩展失败,可以在脚本开头先引入依赖解析所需的库:// 先引入脚本依赖解析组件 @file:DependsOn("org.jetbrains.kotlin:kotlin-scripting-dependencies:1.9.0") @file:Repository("https://repo1.maven.org/maven2/") // 再添加你的本地仓库和自定义依赖 @file:Repository("file://${System.getenv("M2_HOME")}/repository") @file:DependsOn("com.mylib:bake:1.0-SNAPSHOT") println("I made a cake!")注意替换
1.9.0为你当前使用的Kotlin版本(和IDE插件版本一致)。更新Kotlin插件
打开IntelliJ的「Settings→Plugins→Kotlin」,确保插件是最新版本。旧版本的Kotlin对脚本注解的支持存在兼容性问题。
验证方法
修改后运行脚本,如果仍然报错,可以检查:
- 本地Maven仓库中
com/mylib/bake/1.0-SNAPSHOT下的JAR文件是否完整,POM文件是否没有语法错误。 - 尝试用绝对路径替换
${System.getenv("M2_HOME")},排除环境变量读取问题。
内容的提问来源于stack exchange,提问作者quarks
相关产品推荐
相关产品推荐

