sbt 程序集 akka-stream_2.12:2.4.19 和 akka-actor_2.12:2.4.19 被逐出
sbt assembly akka-stream_2.12:2.4.19 and akka-actor_2.12:2.4.19 are evicted
我想用 sbt 程序集制作我的项目的 fat jar。这是我的 build.sbt:
name := "projName"
version := "1.0"
scalaVersion := "2.12.1"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-stream" % "2.5.3",
"com.typesafe.akka" %% "akka-actor" % "2.5.3",
"com.typesafe.akka" %% "akka-http" % "10.0.8",
"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.8.6",
"com.typesafe" % "config" % "1.3.1",
"org.apache.kafka" % "kafka-clients" % "0.10.2.1",
"org.knowm.xchange" % "xchange-core" % "4.2.0",
"org.knowm.xchange" % "xchange-btce" % "4.2.0"
)
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
宁运行后
sbt assembly
我收到这样的警告:
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn] * com.typesafe.akka:akka-stream_2.12:2.4.19 -> 2.5.3
[warn] * com.typesafe.akka:akka-actor_2.12:2.4.19 -> 2.5.3
[warn] Run 'evicted' to see detailed eviction warnings
然后我 运行 sbt evicted
了解更多细节,这里是我得到的:
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn] * com.typesafe.akka:akka-stream_2.12:2.4.19 -> 2.5.3 (caller: com.typesafe.akka:akka-http-core_2.12:10.0.8, default:btceclient_2.12:1.0)
[warn] * com.typesafe.akka:akka-actor_2.12:2.4.19 -> 2.5.3 (caller: com.typesafe.akka:akka-stream_2.12:2.5.3, com.typesafe.akka:akka-parsing_2.12:10.0.8, default:btceclient_2.12:1.0)
[info] Here are other libraries that were evicted:
[info] * com.fasterxml.jackson.core:jackson-databind:2.8.2 -> 2.8.6 (caller: com.fasterxml.jackson.module:jackson-module-paranamer:2.8.6, com.github.mmazi:rescu:1.9.0, com.fasterxml.jackson.module:jackson-module-scala_2.12:2.8.6)
[info] * com.fasterxml.jackson.core:jackson-annotations:2.8.0 -> 2.8.6 (caller: com.fasterxml.jackson.core:jackson-databind:2.8.6, com.fasterxml.jackson.module:jackson-module-scala_2.12:2.8.6)
[info] * com.typesafe:config:1.2.0 -> 1.3.1 (caller: com.typesafe:ssl-config-core_2.12:0.2.1, default:btceclient_2.12:1.0, com.typesafe.akka:akka-actor_2.12:2.5.3)
我知道什么是驱逐警告,但我不知道在当前情况下如何解决。有什么想法吗?
驱逐信息很明确。 akka-http_2.12 : 10.0.8
的 maven 中的快速 search 将告诉您这个工件依赖于 akka-stream_2.12:2.4.19
。
一种解决方案,您可以在依赖项设置中将 akka-actor
和 akka-stream
降级到 2.4.19。
您可以放心地忽略此消息,因为 2.4 和 2.5 版本 are binary compatible,因此可以从 2.4 升级到 2.5。
修改合并策略:
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case PathList("reference.conf") => MergeStrategy.concat
case x => MergeStrategy.first
}
在这里你可以看到新行:case PathList("reference.conf") => MergeStrategy.concat
.
这里发生的事情我想不用解释了吧
我想用 sbt 程序集制作我的项目的 fat jar。这是我的 build.sbt:
name := "projName"
version := "1.0"
scalaVersion := "2.12.1"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-stream" % "2.5.3",
"com.typesafe.akka" %% "akka-actor" % "2.5.3",
"com.typesafe.akka" %% "akka-http" % "10.0.8",
"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.8.6",
"com.typesafe" % "config" % "1.3.1",
"org.apache.kafka" % "kafka-clients" % "0.10.2.1",
"org.knowm.xchange" % "xchange-core" % "4.2.0",
"org.knowm.xchange" % "xchange-btce" % "4.2.0"
)
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
宁运行后
sbt assembly
我收到这样的警告:
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn] * com.typesafe.akka:akka-stream_2.12:2.4.19 -> 2.5.3
[warn] * com.typesafe.akka:akka-actor_2.12:2.4.19 -> 2.5.3
[warn] Run 'evicted' to see detailed eviction warnings
然后我 运行 sbt evicted
了解更多细节,这里是我得到的:
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn] * com.typesafe.akka:akka-stream_2.12:2.4.19 -> 2.5.3 (caller: com.typesafe.akka:akka-http-core_2.12:10.0.8, default:btceclient_2.12:1.0)
[warn] * com.typesafe.akka:akka-actor_2.12:2.4.19 -> 2.5.3 (caller: com.typesafe.akka:akka-stream_2.12:2.5.3, com.typesafe.akka:akka-parsing_2.12:10.0.8, default:btceclient_2.12:1.0)
[info] Here are other libraries that were evicted:
[info] * com.fasterxml.jackson.core:jackson-databind:2.8.2 -> 2.8.6 (caller: com.fasterxml.jackson.module:jackson-module-paranamer:2.8.6, com.github.mmazi:rescu:1.9.0, com.fasterxml.jackson.module:jackson-module-scala_2.12:2.8.6)
[info] * com.fasterxml.jackson.core:jackson-annotations:2.8.0 -> 2.8.6 (caller: com.fasterxml.jackson.core:jackson-databind:2.8.6, com.fasterxml.jackson.module:jackson-module-scala_2.12:2.8.6)
[info] * com.typesafe:config:1.2.0 -> 1.3.1 (caller: com.typesafe:ssl-config-core_2.12:0.2.1, default:btceclient_2.12:1.0, com.typesafe.akka:akka-actor_2.12:2.5.3)
我知道什么是驱逐警告,但我不知道在当前情况下如何解决。有什么想法吗?
驱逐信息很明确。 akka-http_2.12 : 10.0.8
的 maven 中的快速 search 将告诉您这个工件依赖于 akka-stream_2.12:2.4.19
。
一种解决方案,您可以在依赖项设置中将 akka-actor
和 akka-stream
降级到 2.4.19。
您可以放心地忽略此消息,因为 2.4 和 2.5 版本 are binary compatible,因此可以从 2.4 升级到 2.5。
修改合并策略:
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case PathList("reference.conf") => MergeStrategy.concat
case x => MergeStrategy.first
}
在这里你可以看到新行:case PathList("reference.conf") => MergeStrategy.concat
.
这里发生的事情我想不用解释了吧