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

Scala sbt项目:查看测试依赖及子模块依赖树缺失问题排查

Scala sbt项目测试依赖查看及依赖树问题解决

1. 如何查看Scala sbt项目中的测试依赖

默认sbt dependencyTree仅展示Compile配置的依赖,查看测试依赖需指定对应的配置维度,常用命令如下:

  • 查看单元测试(Test配置)的依赖树:
    sbt 'project [项目/子模块名]' test:dependencyTree
    
  • 查看集成测试(IntegrationTest配置)的依赖树:
    sbt 'project [项目/子模块名]' integrationTest:dependencyTree
    
  • 查看所有配置维度的完整依赖:
    sbt 'project [项目/子模块名]' dependencyTree -V
    

2. 让IntegrationTest依赖显示在依赖树中并解决IntelliJ版本报错问题

显示IntegrationTest依赖的方法

你遇到的问题是因为默认dependencyTree仅加载Compile配置的依赖,而test-utils-lib属于IntegrationTest配置,需指定配置执行命令:

sbt 'project sub-module' integrationTest:dependencyTree

执行后就能看到test-utils-lib的依赖信息,包括是否有隐式引用的1.0.4旧版本。

解决IntelliJ找不到1.0.4版本的问题

  1. 刷新sbt项目:在IntelliJ的sbt工具窗口点击刷新按钮(🔄),让IDE重新读取build.sbt配置。
  2. 清理IDE缓存:通过File -> Invalidate Caches...选择"Invalidate and Restart",清除本地缓存中残留的旧版本依赖信息。
  3. 排查传递依赖:用上述integrationTest:dependencyTree命令检查是否有其他依赖间接引入1.0.4版本的test-utils-lib,若存在,可在build.sbt中添加依赖排除或强制指定版本:
    // 排除传递依赖的旧版本
    "com.my.project" %% "test-utils-lib" % "1.0.5" % IntegrationTest classifier "tests" exclude ("com.my.project", "test-utils-lib")
    
    // 强制指定版本
    dependencyOverrides += "com.my.project" %% "test-utils-lib" % "1.0.5" % IntegrationTest classifier "tests"
    
  4. 清理sbt本地缓存:删除本地sbt缓存目录(默认在~/.ivy2/cache或~/.cache/coursier),执行sbt update重新拉取最新依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:43:20