2

只是想用 sbt-assembly 生成一个 Jar,我仍然被这个困住了:

[error] (*:assembly) deduplicate: different file contents found in the following:
[error] /Users/fsalvador/.ivy2/cache/org.neo4j/neo4j-kernel/jars/neo4j-kernel-1.9.4.jar:META-INF/CHANGES.txt
[error] /Users/fsalvador/.ivy2/cache/org.neo4j/neo4j-lucene-index/jars/neo4j-lucene-index-1.9.4.jar:META-INF/CHANGES.txt
[error] /Users/fsalvador/.ivy2/cache/org.neo4j/neo4j-graph-algo/jars/neo4j-graph-algo-1.9.4.jar:META-INF/CHANGES.txt
[error] /Users/fsalvador/.ivy2/cache/org.neo4j/neo4j-udc/jars/neo4j-udc-1.9.4.jar:META-INF/CHANGES.txt
[error] /Users/fsalvador/.ivy2/cache/org.neo4j/neo4j-cypher/jars/neo4j-cypher-1.9.4.jar:META-INF/CHANGES.txt
[error] /Users/fsalvador/.ivy2/cache/org.neo4j/neo4j-jmx/jars/neo4j-jmx-1.9.4.jar:META-INF/CHANGES.txt

在我的 build.sbt 中,我尝试了以下方法:

mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => {
    case PathList("ivy2", "cache",  "org.neo4j", xs @ _*) => MergeStrategy.last
    case "CHANGES.txt"     => MergeStrategy.discard
    case x => old(x)
  }
}

仍然没有喜悦,几乎尝试了一切。

4

2 回答 2

8

PathList(...)提取器拆分路径字符串。以下应该有效:

mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => {
    case PathList("META-INF", "CHANGES.txt") => MergeStrategy.discard
    case x => old(x)
  }
}
于 2013-11-23T01:56:02.117 回答
-3

您是否尝试过更简单的:

mergeStrategy in assembly := mergeStrategy.first

更新,不要这样,请看评论

于 2013-11-22T23:26:55.813 回答