2016-03-22 4 views
1

Я использую Slick 3.1.1 в проекте Scala. Мой 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

Смежные вопросы