Sbt 合并策略的行为不符合预期

Sbt 合并策略的行为不符合预期,sbt,sbt-assembly,Sbt,Sbt Assembly,在build.scala中,我有以下内容: mergeStrategy <<= (mergeStrategy in assembly) {(old) => { case PathList("javax", "servlet", "resources", xs @ _*) => MergeStrategy.first case x => old(x) }} 表明它正在使用“重复数据消除”策略,而不是“第一”策略。这会产生以下错误: [error] {fil

在build.scala中,我有以下内容:

mergeStrategy <<= (mergeStrategy in assembly) {(old) => {
  case PathList("javax", "servlet",  "resources", xs @ _*) => MergeStrategy.first
  case x => old(x)
}}
表明它正在使用“重复数据消除”策略,而不是“第一”策略。这会产生以下错误:

[error] {file:/home/dan/tesla/}tesla-appengine/*:assembly: deduplicate: different file contents found in the following:
[error] /home/dan/.ivy2/cache/com.google.appengine/appengine-tools-sdk/jars/appengine-tools-sdk-1.7.3.jar:javax/servlet/resources/web-app_2_2.dtd
[error] /home/dan/.ivy2/cache/javax.servlet/servlet-api/jars/servlet-api-2.5.jar:javax/servlet/resources/web-app_2_2.dtd

我没有在适当的范围内应用此设置。我需要设置

mergeStrategy in assembly <<= ...
在程序集中合并策略
mergeStrategy in assembly <<= ...