Playframework javaWs、javaJpa等依赖项从何而来?

Playframework javaWs、javaJpa等依赖项从何而来?,playframework,sbt,Playframework,Sbt,我正在用Java在Play框架中启动一个新项目。我检查了build.sbt文件,无法理解依赖项名称来自何处 libraryDependencies ++= Seq( javaJdbc, cache, javaWs, javaJpa } 像javaWs、javaJpa等这些名字是从哪里来的?如何检查这些库的版本?本例中列出的依赖项是安装play时附带的依赖项。这些版本与您正在使用的Play framework版本相匹配 Play框架是模块化的,所以您不必在应用程序中使用它的所有模

我正在用Java在Play框架中启动一个新项目。我检查了
build.sbt
文件,无法理解依赖项名称来自何处

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaWs,
  javaJpa
}

javaWs
javaJpa
等这些名字是从哪里来的?如何检查这些库的版本?

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


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

tl;dr它们由通常添加到内置
项目/plugins.sbt
中的
sbt插件定义(请参阅中的和或其他)

使用
sbt
activator
工具了解构建部件的来源。我假设您使用的是
sbt
(但以下内容也适用于
activator
play
命令行工具)

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

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

sbt外壳 在项目内部,执行
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)
联合项目 在项目内部,执行
sbt consoleProject
以了解构建。我正在使用一个Play项目的Scala版本

使用
consoleProject
输入一个加载了构建的Scala REPL。您在ScalaRepl中,可以使用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)
您可以得到
Seq[sbt.ModuleID]
,并且可以使用Scala对该值执行任何操作

由于项目的
build.sbt
如下所示(我只显示了带有
libraryDependencies
的部分):

consoleProject
中,我可以按如下方式询问这些名称的含义:

scala> jdbc
res0: sbt.ModuleID = com.typesafe.play:play-jdbc:2.3.2

记住,它们是Scala
val
s of
sbt.ModuleID
类型,除此之外……我可以要求批准最终对您有效的答案(如果有的话)吗,或者通过其他问题来寻求更多细节?链接已失效。不幸的是。
scala> jdbc
res0: sbt.ModuleID = com.typesafe.play:play-jdbc:2.3.2