【发布时间】:2018-04-02 18:25:39
【问题描述】:
试图构建一个play(2.6.6)+ scala.js应用程序的fat jar,得到
[error] (play/*:assembly) deduplicate: 在以下发现不同的文件内容: [错误] /home/user/.ivy2/cache/com.typesafe.play/play_2.12/jars/play_2.12-2.6.6.jar:play/reference-overrides.conf [错误] /home/user/.ivy2/cache/com.typesafe.play/play-akka-http-server_2.12/jars/play-akka-http-server_2.12-2.6.6.jar:play/reference -overrides.conf
build.sbt
mainClass in assembly := Some("play.core.server.ProdServerStart")
//fullClasspath in assembly += Attributed.blank(PlayKeys.playPackageAssets.value)
(灵感来自https://www.playframework.com/documentation/2.6.6/Deploying#Using-the-SBT-assembly-plugin)
(但目前不使用 playPackageAssets)
我的assembly.sbt 只包含addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5")
我还尝试了“非标准”配置:
assemblyMergeStrategy in assembly := {
// Building fat jar without META-INF
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
// Take last config file
case PathList(ps @ _*) if ps.last endsWith ".conf" => MergeStrategy.last
case o =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(o)
}
但也没有运气。如何以正确的方式解决这个问题?
【问题讨论】:
标签: scala playframework sbt sbt-assembly