我想創建一個大的Jar文件。我正在嘗試使用SBT ASSEMBLY。我從GitHub和 answer安裝了sbt-assembly。當我跑sbt assembly
,我得到這個錯誤:解決通過SBT程序集創建JAR時的依賴關係
java.lang.RuntimeException: deduplicate: different file contents found in the following:
/home/UserName/.ivy2/cache/org.eclipse.jetty.orbit/javax.servlet/orbits/javax.servlet-2.5.0.v201103041518.jar:javax/servlet/SingleThreadModel.class
/home/UserName/.ivy2/cache/org.mortbay.jetty/servlet-api/jars/servlet-api-2.5-20081211.jar:javax/servlet/SingleThreadModel.class
爲了解決這個問題,我也跟着用戶的README頁面,這是他建議的代碼。
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
{
case PathList("org", "apache", xs @ _*) => MergeStrategy.last
case PathList("javax", "servlet", xs @ _*) => MergeStrategy.last
case PathList("com", "esotericsoftware", xs @ _*) => MergeStrategy.last
case PathList("project.clj") => MergeStrategy.last
case PathList("overview.html") => MergeStrategy.last
case x => old(x)
}
}
即使在添加此代碼後,我也遇到了前面提到的相同錯誤。請讓我知道我缺少什麼。任何關於這個錯誤的幫助將不勝感激。謝謝!
更新2:
新增的排阻規則按所給的鏈接,
libraryDependencies ++= Seq("org.apache.spark" %% "spark-core" % "0.8.0-incubating","com.codahale" % "jerkson_2.9.1" % "0.5.0","org.skife.com.typesafe.config" % "typesafe-config" % "0.3.0").map(_.exclude("javax", "servlet"))
更新3:
我可以找到導致問題的庫。
| +-org.apache.avro:avro-ipc:1.7.4
| | +-io.netty:netty:3.4.0.Final (evicted by: 3.5.4.Final)
| | +-io.netty:netty:3.5.4.Final
...
...
| | +-org.mortbay.jetty:jetty-util:6.1.26
| | +-org.mortbay.jetty:jetty:6.1.26
| | | +-org.mortbay.jetty:jetty-util:6.1.26
| | | +-org.mortbay.jetty:servlet-api:2.5-20081211
| | |
| | +-org.mortbay.jetty:servlet-api:2.5-20081211
| | +-org.slf4j:slf4j-api:1.7.2
...
...
| +-org.eclipse.jetty:jetty-server:7.6.8.v20121106
| | +-org.eclipse.jetty.orbit:javax.servlet:2.5.0.v201103041518
更新4:修復
因此增加MergeStrategy解決了問題。即使我有相當多的依賴關係,超過10個,添加MergeStrategy爲他們每個人單獨解決了這個問題。
謝謝!實際上,我已經在sbt文件中添加了'retrieveManaged'參數。我可以在'lib_managed/jars/org.mortbay.jetty/servlet-api /'下看到引發此問題的jar。根據鏈接,我添加了[更新2,有問題],但我仍然面臨這個問題。如何找到導致問題的確切庫? – Learner
你使用了依賴圖插件嗎?這應該可以幫助你找出罐子的來源。我已經添加了這些信息。 –
我已經得到了上面的依賴關係tree.Any指針如何解決此MergeStrategy錯誤? – Learner