2016-03-22 19 views
1

我在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) 
    } 
} 
+1

這是可能的油滑hikaricp依賴性拉入HikariCP-java6依賴。您可以刪除HikariCP上的顯式依賴項,也可以覆蓋HikariCP-java6依賴項。請參閱[本頁](http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Library-Management.html)瞭解如何強制/重寫依賴關係。 – brettw

+0

是的,這工作。謝謝。我在下面的答案中顯示了我的工作路線。 – thund

回答

0

繼在上面他的評論@ brettw的建議,我把它通過添加exclude命令工作到build.sbt如下:

"com.typesafe.slick" %% "slick-hikaricp" % "3.1.1" exclude("com.zaxxer", "HikariCP-java6"),  
+0

我想你應該刪除''com.zaxxer「%」HikariCP「%」2.4.3「這行。 HikariCP已經是'slick-hikaricp'的硬依賴 – user2829759