Scala Play понимает новые зависимости проекта?

Я скачал последнюю версию активатора и, следуя инструкциям, установил его и создал новый голый проект Play. Новый проект был успешно создан, однако я не могу разобраться в зависимостях.

Я вижу сгенерированный файл build.sbt, не содержащий зависимости от Play:

name := """play-template-new"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaWs
)

// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator

Вместо этого я вижу ссылку на плагин sbt Play под build/plugins.sbt:"

// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.3")

// Web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")

// Play enhancer - this automatically generates getters/setters for public fields
// and rewrites accessors of these fields to use the getters/setters. Remove this
// plugin if you prefer not to have this feature, or disable on a per project
// basis using disablePlugins(PlayEnhancer) in your build.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")

// Play Ebean support, to enable, uncomment this line, and enable in your build.sbt using
// enablePlugins(SbtEbean). Note, uncommenting this line will automatically bring in
// Play enhancer, regardless of whether the line above is commented out or not.
// addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")

Почему используются плагины sbt, а не правильные зависимости? Как я могу добавить новые зависимости, например. Слик последней версии?


person SkyWalker    schedule 07.09.2015    source источник


Ответы (1)


Плагин play sbt добавляет библиотеки зависимостей в play framework. Просто с помощью плагина подключаются все необходимые зависимости. Вы можете проверить, как это делается, в исходный код плагина sbt.

Что касается добавления гладкой зависимости, просто добавьте следующее в файл build.sbt обычным способом sbt, как описано в начало работы.

libraryDependencies ++= Seq(
  "com.typesafe.slick" %% "slick" % "2.1.0",
  "org.slf4j" % "slf4j-nop" % "1.6.4"
)
person Ivan Stanislavciuc    schedule 07.09.2015
comment
Спасибо за ваш ответ! это почему? не может sbt разрешить транзитивные зависимости??? - person SkyWalker; 07.09.2015
comment
SBT может сделать это без проблем. Но разработчики Play Framework подхватили подход как в плагине и я не знаю их мотивов. Из исходного кода я вижу, что он выполняет некоторые проверки условий. Например, если кто-то использует Java, он использует разные компоненты. Кажется, что это снимает нагрузку по указанию правильных модулей с конечного пользователя. - person Ivan Stanislavciuc; 07.09.2015