为播放应用程序启动sbt shell时,我仍然看到这些消息:
[warn] * com.typesafe.akka:akka-actor_2.11:2.5.21 is selected over {2.3.13, 2.4.20}
[warn] +- com.typesafe.akka:akka-slf4j_2.11:2.5.21 () (depends on 2.5.21)
[warn] +- com.typesafe.play:play_2.11:2.6.23 () (depends on 2.5.21)
[warn] +- com.typesafe.akka:akka-stream_2.11:2.5.21 () (depends on 2.5.21)
[warn] +- com.typesafe.akka:akka-parsing_2.11:10.0.15 () (depends on 2.4.20)
我该如何解决?我是否需要显式设置akka版本,使其不选择2.5.21?
答案 0 :(得分:2)
我建议挂接sbt-dependency-graph sbt插件,并使用以下命令找出哪些组件取决于哪个版本的akka-actor
sbt <project>/dependencyTree
sbt "<project>/whatDependsOn <organization> <module> <revision>"
sbt <project>/evicted
列出了组件依赖项列表之后,您有几种选择:
答案 1 :(得分:1)
您得到的是sbt的驱逐警告,您可以在此link上查看文档。
您可以做的是重写sbt文件上使用的依赖项,以避免运行时错误。
例如:
dependencyOverrides += "com.typesafe.akka" %% "akka-actor" % "2.5.21"
通过这种方式,您可以指定要使用哪个版本的库。 您还可以检查sbt的插件dependency-graph,以了解项目中的所有依赖项。