2016-03-22 17 views
1

私はScalaプロジェクトでSlick 3.1.1を使用しています。私のbuild.sbt libraryDependenciesには次の情報が含まれています。Slick 3.1.1 sbtアセンブリによる重複排除エラー

"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は、上記の彼のコメントの@ brettwの助言に従い

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

ですが、私はbuild.sbtexcludeコマンドを追加することで動作するようにそれを得た:

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

私は '' com.zaxxer "%" HikariCP "%" 2.4.3 "という行を削除するべきだと思います。 HikariCPはすでに「スリックヒカリック」のハード依存です – user2829759

関連する問題