我在Scala項目中使用Slick 3.1.1。我的build.sbt libraryDependencies
包含此:slick 3.1.1 sbt-assembly的重複數據刪除錯誤
"com.typesafe.slick" %% "slick" % "3.1.1",
"com.typesafe.slick" %% "slick-hikaricp" % "3.1.1",
"com.zaxxer" % "HikariCP" % "2.4.3",
"mysql" % "mysql-connector-java" % "5.1.38",
一切正常。然而,當我嘗試使用sbt-assembly
部署我得到的錯誤是這樣的:
[error] deduplicate: different file contents found in the following:
[error] /home/thunderkid/.ivy2/cache/com.zaxxer/HikariCP-java6/bundles/HikariCP-java6-2.3.7.jar:com/zaxxer/hikari/pool/HikariPool.class
[error] /home/thunderkid/.ivy2/cache/com.zaxxer/HikariCP/bundles/HikariCP-2.4.3.jar:com/zaxxer/hikari/pool/HikariPool.class
如何解決這些?
以前我使用的是Slick 3.0,它不需要slick-hikaricp
,它工作正常。我嘗試刪除.ivy2/cache/com.zaxxer/HikariCP-java6
,但這不起作用 - 它只是重新創建。我mergeStrategy
是
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
{
case PathList(ps @ _*) if ps.last endsWith "ArgumentsProcessor.class" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith "MatchersBinder.class" => MergeStrategy.first
case "application.conf" => MergeStrategy.concat
case "unwanted.txt" => MergeStrategy.discard
case x => old(x)
}
}
這是可能的油滑hikaricp依賴性拉入HikariCP-java6依賴。您可以刪除HikariCP上的顯式依賴項,也可以覆蓋HikariCP-java6依賴項。請參閱[本頁](http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Library-Management.html)瞭解如何強制/重寫依賴關係。 – brettw
是的,這工作。謝謝。我在下面的答案中顯示了我的工作路線。 – thund