plugin para intellij idea development configurar compilador scala intellij-idea playframework slick

scala - para - Ya se configuró un enlace a play.api.db.DBApi, las evoluciones y el error del inyector con play-slick



intellij scala (2)

Probablemente haya agregado dependencia a jdbc, lo cual no tiene sentido si usa Slick para ello. Retíralo y funcionará.

Quiero introducir Slick en mi proyecto de juego, así que agrego las siguientes dependencias a build.sbt:

"com.typesafe.play" %% "play-slick" % "1.0.1" withSources(), "com.typesafe.play" %% "play-slick-evolutions" % "1.0.1" withSources(),

Luego, cuando ejecuté una especificación de integración para el controlador obtuve la siguiente excepción tanto en el IDE de Intellij como en la prueba del activador de línea de comandos. Después de que Google encontré la solución: https://www.playframework.com/documentation/2.4.x/PlaySlickFAQ#A-binding-to-play.api.db.DBApi-was-already-configured

Después de eliminar la dependencia jdbc, la especificación de integración pasó cuando usé la línea de comandos, sin embargo, aún obtuve el mismo error cuando ejecuté la prueba en el IDE de Intellij como el siguiente error: se encontró una excepción al invocar ejecutar en una suite anidada. No se puede crear inyector, ver los siguientes errores:

1) A binding to play.api.db.DBApi was already configured at play.api.db.DBModule.bindings(DBModule.scala:25): 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$1). 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$1) 1 error com.google.inject.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.bindings(DBModule.scala:25): 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$1). 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$1) 1 error at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466) at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) at com.google.inject.Guice.createInjector(Guice.java:96) at com.google.inject.Guice.createInjector(Guice.java:73) at com.google.inject.Guice.createInjector(Guice.java:62) at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:126) at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:93) at play.api.test.FakeApplication.<init>(Fakes.scala:216) at org.scalatestplus.play.OneServerPerSuite$class.app(OneServerPerSuite.scala:152)


Si eres como yo, tienes algo como esto en tu build.sbt

libraryDependencies ++= Seq( jdbc, cache, ws, specs2 % Test, "mysql" % "mysql-connector-java" % "5.1.37", "com.typesafe.play" %% "play-slick" % "1.1.1", "com.typesafe.play" %% "play-slick-evolutions" % "1.1.1" )

eliminar jdbc

libraryDependencies ++= Seq( //jdbc, //<<---- this one here cache,