Estoy empezando un nuevo proyecto en Play Framework con Java. Revisé el build.sbt
archivar y no se pudo entender de dónde proceden los nombres de las dependencias?
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
javaJpa
}
¿De dónde fueron estos nombres? javaWs
, javaJpa
, etc. com from? ¿Cómo comprobar la versión de estas bibliotecas?
Respuestas
2 para la respuesta № 1Las dependencias enumeradas en este ejemplo son las que se envían con su instalación de Play. Las versiones coinciden con la versión de Play Framework que está utilizando.
Play Framework es modular, por lo que no tiene que usar todos sus módulos en su aplicación. Es por eso que debe especificar qué módulos desea.
8 para la respuesta № 2
tl; dr Ellos son definidos por el sbt-plugin
(ver javaws y java jpa u otros en PlayImport.scala) eso es generalmente añadido a la construcción en project/plugins.sbt
.
Utilizar sbt
o activator
Herramientas para aprender de donde vienen las partes de construcción. Asumo que usas sbt
(pero lo siguiente se aplica a activator
o play
herramientas de línea de comandos, también).
Tenga en cuenta que una compilación sbt se describe utilizando el lenguaje Scala y todas las compilaciones sbt son de tipo seguro y compiladas usando el compilador Scala.
Un complemento de sbt es solo un conjunto de configuraciones que se pueden aplicar a un proyecto, que también puede definir Scala val
s que correspondan a las diferentes dependencias que puede usar para un proyecto Play, por ejemplo, javaJdbc
. Puede consultar por el val
s usando consoleProject
(que describí a continuación como la segunda opción).
sbt shell
Dentro del proyecto, ejecute. sbt
. Mientras que en la shell sbt, ejecute show libraryDependencies
Para conocer las dependencias:
> show libraryDependencies
[info] List(org.scala-lang:scala-library:2.11.1, com.typesafe.play:twirl-api:1.0.2, com.typesafe.play:play:2.3.2, com.typesafe.play:play-test:2.3.2:test, com.typesafe.play:play-docs:2.3.2:docs, com.typesafe.play:play-jdbc:2.3.2, com.typesafe.play:anorm:2.3.2, com.typesafe.play:play-cache:2.3.2, com.typesafe.play:play-ws:2.3.2)
consoleProject
Dentro del proyecto, ejecute. sbt consoleProject
para aprender sobre la construcción. Estoy usando la versión Scala de un proyecto Play.
Con consoleProject
entras en un Scala REPL con la compilación cargada. Está en Scala REPL y puede consultar las diferentes partes de la compilación utilizando Scala.
Utilizar eval
macro para evaluar la configuración de compilación dentro consoleProject
:
scala> libraryDependencies.eval
res0: Seq[sbt.ModuleID] = List(org.scala-lang:scala-library:2.11.1, com.typesafe.play:twirl-api:1.0.2, com.typesafe.play:play:2.3.2, com.typesafe.play:play-test:2.3.2:test, com.typesafe.play:play-docs:2.3.2:docs, com.typesafe.play:play-jdbc:2.3.2, com.typesafe.play:anorm:2.3.2, com.typesafe.play:play-cache:2.3.2, com.typesafe.play:play-ws:2.3.2)
Usted obtiene Seq[sbt.ModuleID]
y puedes hacer lo que quieras con el valor usando Scala.
Ya que build.sbt
para el proyecto se ve como sigue (mostré solo la parte con libraryDependencies
)
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws
)
cuando en consoleProject
Puedo preguntar a qué se refieren los nombres de la siguiente manera:
scala> jdbc
res0: sbt.ModuleID = com.typesafe.play:play-jdbc:2.3.2
Recuerda, son Scala val
s de sbt.ModuleID
Tipo y ... nada más que eso.