You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行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对脚本注解的支持存在兼容性问题。

验证方法

修改后运行脚本,如果仍然报错,可以检查:

  1. 本地Maven仓库中com/mylib/bake/1.0-SNAPSHOT下的JAR文件是否完整,POM文件是否没有语法错误。
  2. 尝试用绝对路径替换${System.getenv("M2_HOME")},排除环境变量读取问题。

内容的提问来源于stack exchange,提问作者quarks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:00:05