Sbt Akka测试套件错误,带有模糊版本错误

Sbt Akka测试套件错误,带有模糊版本错误,sbt,akka,Sbt,Akka,我正在使用Akka testkit库测试我的几个演员 以下是我的build.sbt中的内容: "com.typesafe.akka" %% "akka-testkit" % "2.6.10" % Test, libraryDependencies ++= Seq( ws, // Our streaming library "io.monix" %% "monix" % "3

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

以下是我的build.sbt中的内容:

"com.typesafe.akka" %% "akka-testkit" % "2.6.10" % Test,
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")
)
以下是我得到的错误:

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中定义的所有依赖关系:

"com.typesafe.akka" %% "akka-testkit" % "2.6.10" % Test,
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")
)

有没有办法解决这个问题?

所以我不得不为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,
在我的例子中,AkKa版本是2.6.10


必须提到这些依赖项看起来很难看,但这就是我如何摆脱错误的方法。

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