Используйте Liquibase с Play Java Framework

Я пытаюсь использовать Liquibase с Play Framework. Я думаю, моя проблема в том, что я пытаюсь использовать Play Java framework, а не Play Scala.

Это плагин, который я пытаюсь заставить работать: https://github.com/Ticketfly/play-liquibase Это может быть другой вариант, но я не могу изменить свой проект на Scala.

Это моя трассировка стека, и я думаю, что моя проблема в том, что я не использую Scala.

play.api.UnexpectedException: Unexpected exception[NoSuchMethodError: play.api.Logger.info(Lscala/Function0;)V]
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1.reload(DevServerStart.scala:190)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1.get(DevServerStart.scala:124)
    at play.core.server.ssl.ServerSSLEngine$.createSSLEngineProvider(ServerSSLEngine.scala:29)
    at play.core.server.AkkaHttpServer$$anonfun$7.apply(AkkaHttpServer.scala:126)
    at play.core.server.AkkaHttpServer$$anonfun$7.apply(AkkaHttpServer.scala:124)
    at scala.Option.map(Option.scala:146)
    at play.core.server.AkkaHttpServer.<init>(AkkaHttpServer.scala:124)
    at play.core.server.AkkaHttpServerProvider.createServer(AkkaHttpServer.scala:445)
    at play.core.server.AkkaHttpServerProvider.createServer(AkkaHttpServer.scala:443)
    at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:222)

Итак, как я могу использовать Liquibase с Play Java Framework?

Спасибо!


person Pedro Caldeira    schedule 29.06.2018    source источник
comment
Похоже, у вас конфликт зависимостей. Этот NoSuchMethodError обычно означает, что у вас есть одна и та же зависимость дважды, одна из которых вызывает какой-то метод, а фактически разрешенный класс, у которого ее нет.   -  person Dan W    schedule 29.06.2018


Ответы (1)


Итак, @dan-w был прав. У меня был конфликт зависимостей. Что я сделал, чтобы решить эту проблему, так это загрузил исходный код плагина и изменил версию Scala на 2.6.0 в каждом случае.

Итак, в build.sbt у меня есть:

def playVersion(scalaVersion: String) = CrossVersion.partialVersion(scalaVersion) match {
  case Some((2, scalaMajor)) if scalaMajor == 12 => "2.6.0"
  case _                                         => "2.6.0"
}

Использовал sbt> publishLocal и использовал свою версию.

person Pedro Caldeira    schedule 04.07.2018