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

Sbt未加载正确全局插件版本致依赖解析失败求助

解决sbt assembly时找不到com.geirsson#sbt-scalafmt;1.5.1的问题

问题根源

sbt 1.x版本(如你使用的1.1.4)默认应加载~/.sbt/1.0/plugins全局插件目录,但当前环境存在配置残留,导致错误加载了0.13版本的插件目录。而sbt-scalafmt 1.5.1是适配sbt 1.x的依赖,在0.13的解析路径中无法找到,因此抛出ResolveException。

具体解决步骤

  • 检查并清理环境变量
    执行命令查看是否有强制指定旧插件目录的环境变量:

    echo $SBT_GLOBAL_PLUGIN_DIRECTORY
    

    如果输出为/Users/<username>/.sbt/0.13/plugins,需要在你的shell配置文件(如~/.bashrc、~/.zshrc)中删除对应的export SBT_GLOBAL_PLUGIN_DIRECTORY=...语句,保存后重启终端生效。

  • 强制指定sbt使用1.x插件目录
    在项目根目录创建.sbtopts文件,添加以下内容(替换为你的实际用户路径):

    -Dsbt.global.plugins=/Users/<username>/.sbt/1.0/plugins
    

    这会让sbt启动时强制加载1.x版本的全局插件目录,避免读取旧目录。

  • 验证项目本地插件配置
    打开项目根目录下的project/plugins.sbt,确认sbt-scalafmt的依赖配置正确:

    addSbtPlugin("com.geirsson" % "sbt-scalafmt" % "1.5.1")
    

    同时确保文件中没有引入适配sbt 0.13的仓库或依赖。

  • 彻底清理缓存
    除了已尝试的操作,还需要清理这些缓存目录:

    rm -rf ~/.sbt/boot
    rm -rf ./target ./project/target
    

    之后重新执行sbt clean assembly。

  • 验证插件加载路径
    执行以下命令确认sbt使用的插件目录是否正确:

    sbt "show sbtGlobalPluginsDirectory"
    

    输出应指向/Users/<username>/.sbt/1.0/plugins,说明配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:01:01