依赖关系javaWs,javaJpa等来自Play/Java应用程序?

Tus*_*tel 10 sbt playframework

我正在使用Java在Play Framework中开始一个新项目.我检查了build.sbt文件,无法理解依赖项名称的来源?

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaWs,
  javaJpa
}
Run Code Online (Sandbox Code Playgroud)

这些名字在哪里等javaWs,javaJpa来自?如何检查这些库的版本?

Jac*_*ski 8

tl; dr它们由通常添加到构建中的sbt-plugin(参见javaWsjavaJpa或其他PlayImport.scala中)定义.project/plugins.sbt

使用sbtactivator工具来了解构建部件的来源.我假设您使用sbt(但以下适用于activatorplay命令行工具).

请注意,使用Scala语言描述了sbt构建,并且所有sbt构建都是类型安全的,并使用Scala编译器进行编译.

sbt插件只是可以应用于项目的一组设置,也可以定义val与可用于Play项目的不同依赖项相对应的Scala ,例如javaJdbc.您可以val使用consoleProject(我在下面描述的第二个选项)查询s .

sbt shell

在项目内部,执行sbt.在sbt shell中,执行show libraryDependencies以了解依赖项:

> 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)
Run Code Online (Sandbox Code Playgroud)

consoleProject

在项目内部,执行sbt consoleProject以了解构建.我正在使用Scala版本的Play项目.

consoleProject您加载构建的情况下输入Scala REPL.您在Scala REPL中,您可以使用Scala查询构建的不同部分.

使用eval宏来评估内部的构建设置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)
Run Code Online (Sandbox Code Playgroud)

你得到了Seq[sbt.ModuleID],你可以使用Scala做任何你想要的值.

因为build.sbt该项目看起来如下(我只展示了部分libraryDependencies):

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws
)
Run Code Online (Sandbox Code Playgroud)

consoleProject我什么时候可以问这些名字的含义如下:

scala> jdbc
res0: sbt.ModuleID = com.typesafe.play:play-jdbc:2.3.2
Run Code Online (Sandbox Code Playgroud)

请记住,他们是Scala valsbt.ModuleID类型而且......仅此而已.

  • 链接已失效。很遗憾。 (2认同)

Dar*_*dic 3

此示例中列出的依赖项是安装 play 时附带的依赖项。这些版本与您正在使用的 Play 框架版本相匹配。

Play 框架是模块化的,因此您不必在应用程序中使用它的所有模块。这就是为什么您必须指定所需的模块。