play-slick-evolutionsを入れてPlayをローカル実行させると「CreationException: Unable to create injector, see the following errors:」と出力される

事象
Playframeworkで開発をしようとした時に初期の段階でプロジェクトを作成しevolutionsを利用しようとすると以下のようにエラーにエラーが発生する。
1 2 3 4 5 6 7 8 9 10 |
Unexpected exception CreationException: Unable to create injector, see the following errors: 1) A binding to play.api.db.DBApi was already configured at play.api.db.DBModule$$anonfun$$lessinit$greater$1.apply(DBModule.scala:36): Binding(interface play.api.db.DBApi to ProviderConstructionTarget(class play.api.db.DBApiProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$4). at play.api.db.slick.evolutions.EvolutionsModule.bindings(EvolutionsModule.scala:15): Binding(interface play.api.db.DBApi to ConstructionTarget(class play.api.db.slick.evolutions.internal.DBApiAdapter) in interface javax.inject.Singleton) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$4) 1 error |
原因
エラーにも書いてあるが、DBModuleでDBApiへの依存性注入の設定がすでに存在しているため競合が起こりエラーになっている。
解決策
公式ドキュメントに存在している通りだが、Play frameworkにデフォルトで設定されているjdbcをbuild.sbtから削除してあげればいい。
1 2 3 4 5 6 7 8 9 10 11 12 |
libraryDependencies ++= Seq( - jdbc - ,ehcache + ehcache ,ws ,specs2 % Test ,guice ,evolutions ,"com.typesafe.play" %% "play-slick" % "3.0.0" ,"com.typesafe.play" %% "play-slick-evolutions" % "3.0.0" ) |
以上