【问题标题】:Akka Testkit Error with Ambigous Version Error带有模糊版本错误的 Akka Testkit 错误
【发布时间】:2021-03-17 12:43:43
【问题描述】:

我正在使用 Akka testkit 库来测试我的几个演员。

这是我的 build.sbt 中的内容:

"com.typesafe.akka" %% "akka-testkit" % "2.6.10" % Test,

这是我得到的错误:

java.lang.IllegalStateException: You are using version 2.6.10 of Akka, but it appears you (perhaps indirectly) also depend on older versions of related artifacts. You can solve this by adding an explicit dependency on version 2.6.10 of the [akka-actor-typed, akka-slf4j, akka-protobuf-v3, akka-stream, akka-serialization-jackson] artifacts to your project. See also: https://doc.akka.io/docs/akka/current/common/binary-compatibility-rules.html#mixed-versioning-is-not-allowed

我很困惑,因为我对 Akka 没有任何其他依赖项,因为这是我的 build.sbt 中定义的所有依赖项:

libraryDependencies ++= Seq(
  ws,
  // Our streaming library
  "io.monix" %% "monix" % "3.3.0",

  // Dependencies needed for Slick
  "com.typesafe.slick" %% "slick" % "3.3.3",
  "com.typesafe.slick" %% "slick-hikaricp" % "3.3.3",

  // For application Metrics
  "io.dropwizard.metrics" % "metrics-core" % "4.1.16",
  "io.dropwizard.metrics" % "metrics-jvm" % "4.1.16",
  "com.typesafe.scala-logging" %% "scala-logging" % "3.9.2",
  "org.scala-lang.modules" % "scala-async_2.11" % "0.9.7",
  "com.typesafe" % "config" % "1.4.1",

  // For JSON parsing
  "com.typesafe.play" %% "play-json" % "2.9.1",
  "com.typesafe.play" %% "play-json-joda" % "2.9.1",

  // JDBC driver for MySQL & H2
  "mysql" % "mysql-connector-java" % "8.0.22",
  "com.h2database" % "h2" % "1.4.186",

  // Test dependencies
  "com.typesafe.akka" %% "akka-testkit" % "2.6.10" % Test,
  "org.scalatest" %% "scalatest" % "3.2.3" % Test,
  "org.awaitility" % "awaitility" % "4.0.3" % Test,
  "org.scalatestplus.play" %% "scalatestplus-play" % "5.1.0" % Test exclude ("org.slf4j", "slf4j-simple"),
  "com.github.andyglow" %% "websocket-scala-client" % "0.3.0" % Test exclude ("org.slf4j", "slf4j-simple")
)

任何想法如何解决这个问题?

【问题讨论】:

  • 我必须添加错误消息中提到的所有依赖项并将它们的范围进行测试。成功了!

标签: sbt akka


【解决方案1】:

所以我不得不像这样为 Akka 添加一些依赖项:

  "com.typesafe.akka" %% "akka-testkit" % AkkaVersion % Test,
  "com.typesafe.akka" %% "akka-slf4j" % AkkaVersion % Test,
  "com.typesafe.akka" %% "akka-protobuf-v3" % AkkaVersion % Test,
  "com.typesafe.akka" %% "akka-serialization-jackson" % AkkaVersion % Test,
  "com.typesafe.akka" %% "akka-stream" % AkkaVersion % Test,
  "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion % Test,

我的 AkkaVersion 是 2.6.10

不得不提及这些依赖项看起来很难看,但这是我能够摆脱错误的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-19
    • 2019-12-10
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    相关资源
    最近更新 更多