使用 Like / Like Streams / Like HTTP 时的 Like 版本冲突
Conflicting Akka versions when using Akka / Akka Streams / Akka HTTP
我正在尝试使用 Scala 2.12.3、sbt 0.13.6 和我的 build.sbt 文件中的以下库依赖项构建项目:
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % "2.5.4",
"com.typesafe.akka" %% "akka-stream" % "2.5.4",
"com.typesafe.akka" %% "akka-stream-testkit" % "2.5.4" % Test,
"com.typesafe.akka" %% "akka-http" % "10.0.9",
"com.typesafe.akka" %% "akka-http-core" % "10.0.9",
"org.scalatest" %% "scalatest" % "3.0.1" % Test)
但是,我不断收到以下有关版本冲突的警告...看来 akka-http
对 Akka / Streams 2.4.19 版具有传递依赖性。我最近发现了一个类似的 ,它建议显式添加 akka-streams 作为依赖项,并确保它与 akka-actor 的版本相同。以下是依赖性警告:
[warn] Found version conflict(s) in library dependencies; some are
suspected to be binary incompatible:
[warn]
[warn] * com.typesafe.akka:akka-stream_2.12:2.5.4 is selected over
2.4.19
[warn] +- com.typesafe.akka:akka-http-core_2.12:10.0.9
(depends on 2.4.19)
[warn] +- com.werner.opttech:dependency-test_2.12:0.0.0
(depends on 2.4.19)
[warn]
[warn] * com.typesafe.akka:akka-actor_2.12:2.5.4 is selected over
2.4.19
[warn] +- com.werner.opttech:dependency-test_2.12:0.0.0
(depends on 2.5.4)
[warn] +- com.typesafe.akka:akka-stream_2.12:2.5.4
(depends on 2.5.4)
[warn] +- com.typesafe.akka:akka-parsing_2.12:10.0.9
(depends on 2.4.19)
关于如何解决此错误的任何建议,以便我可以使用最新版本的 akka、akka 流和 akka http?谢谢!
您的配置是正确的,因为它遵循您提到的 compatibility guidelines。我认为您将警告消息误解为错误;您正在 使用这些库的 2.5.4 版本。仔细看看这个片段:
[warn] * com.typesafe.akka:akka-actor_2.12:2.5.4 is selected over 2.4.19
sbt 确实选择了 akka-actor
库的 2.5.4 版而不是 2.4.19 版。
此外,运行 show update
在 sbt 控制台输出以下内容:
[info] com.typesafe.akka:akka-actor_2.12
[info] - 2.5.4
[info] status: release
[info] publicationDate: Thu Aug 10 09:17:00 EDT 2017
....
[info] - 2.4.19
[info] evicted: true
[info] evictedData: latest-revision
sbt 驱逐了 akka-actor
的 2.4.19 版以支持 2.5.4 版。
警告消息实际上确认您正在使用当前版本的 Akka 工具。
chunjef 的回答是 correct.If 你确实想清除警告,将以下代码添加到你的 build.sbt.
conflictManager := ConflictManager.strict
dependencyOverrides += "com.typesafe.akka" %% "akka-actor" % "2.5.4"
dependencyOverrides += "com.typesafe.akka" %% "akka-stream" % "2.5.4"
dependencyOverrides += "org.scala-lang" % "scala-library" % "2.12.3"
相关类型:
akka-http 10.1.0-RC1 removes the transient dependency:
we changed the policy not to depend on akka-stream
explicitly any more but mark it as a provided
dependency in our build. That means that you will have to always add a manual dependency to akka-stream
.
我正在尝试使用 Scala 2.12.3、sbt 0.13.6 和我的 build.sbt 文件中的以下库依赖项构建项目:
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % "2.5.4",
"com.typesafe.akka" %% "akka-stream" % "2.5.4",
"com.typesafe.akka" %% "akka-stream-testkit" % "2.5.4" % Test,
"com.typesafe.akka" %% "akka-http" % "10.0.9",
"com.typesafe.akka" %% "akka-http-core" % "10.0.9",
"org.scalatest" %% "scalatest" % "3.0.1" % Test)
但是,我不断收到以下有关版本冲突的警告...看来 akka-http
对 Akka / Streams 2.4.19 版具有传递依赖性。我最近发现了一个类似的
[warn] Found version conflict(s) in library dependencies; some are
suspected to be binary incompatible:
[warn]
[warn] * com.typesafe.akka:akka-stream_2.12:2.5.4 is selected over
2.4.19
[warn] +- com.typesafe.akka:akka-http-core_2.12:10.0.9
(depends on 2.4.19)
[warn] +- com.werner.opttech:dependency-test_2.12:0.0.0
(depends on 2.4.19)
[warn]
[warn] * com.typesafe.akka:akka-actor_2.12:2.5.4 is selected over
2.4.19
[warn] +- com.werner.opttech:dependency-test_2.12:0.0.0
(depends on 2.5.4)
[warn] +- com.typesafe.akka:akka-stream_2.12:2.5.4
(depends on 2.5.4)
[warn] +- com.typesafe.akka:akka-parsing_2.12:10.0.9
(depends on 2.4.19)
关于如何解决此错误的任何建议,以便我可以使用最新版本的 akka、akka 流和 akka http?谢谢!
您的配置是正确的,因为它遵循您提到的 compatibility guidelines。我认为您将警告消息误解为错误;您正在 使用这些库的 2.5.4 版本。仔细看看这个片段:
[warn] * com.typesafe.akka:akka-actor_2.12:2.5.4 is selected over 2.4.19
sbt 确实选择了 akka-actor
库的 2.5.4 版而不是 2.4.19 版。
此外,运行 show update
在 sbt 控制台输出以下内容:
[info] com.typesafe.akka:akka-actor_2.12
[info] - 2.5.4
[info] status: release
[info] publicationDate: Thu Aug 10 09:17:00 EDT 2017
....
[info] - 2.4.19
[info] evicted: true
[info] evictedData: latest-revision
sbt 驱逐了 akka-actor
的 2.4.19 版以支持 2.5.4 版。
警告消息实际上确认您正在使用当前版本的 Akka 工具。
chunjef 的回答是 correct.If 你确实想清除警告,将以下代码添加到你的 build.sbt.
conflictManager := ConflictManager.strict
dependencyOverrides += "com.typesafe.akka" %% "akka-actor" % "2.5.4"
dependencyOverrides += "com.typesafe.akka" %% "akka-stream" % "2.5.4"
dependencyOverrides += "org.scala-lang" % "scala-library" % "2.12.3"
相关类型: akka-http 10.1.0-RC1 removes the transient dependency:
we changed the policy not to depend on
akka-stream
explicitly any more but mark it as aprovided
dependency in our build. That means that you will have to always add a manual dependency toakka-stream
.