为什么在SBT的编译阶段"解决"这么慢?

Han*_*Sun 10 java scala maven sbt

我发现Resolving步骤通常需要很长时间才能运行sbt compile,比如这样

[info] Resolving org.sonatype.oss#oss-parent;7 ...
Run Code Online (Sandbox Code Playgroud)

有没有人对解决实际意味着什么有想法?为什么有必要?

joh*_*ren 9

当ivy(sbt用于依赖管理)查看项目的依赖关系图以找出所有依赖关系和传递依赖关系,并解决它们之间的任何冲突时,例如,两个依赖关系可能依赖于同一个库的不同版本.

结果是缓存的,但如果您执行了清理,则会将其删除,因此将在需要了解依赖项的下一个操作上重新计算.

也可以以这样的方式配置项目,使sbt无法缓存结果,但每次构建时都需要重做这些计算,例如,如果您依赖快照并已配置sbt来更新每个构建的快照.