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

时间:2014-07-31 09:32:28

标签: playframework sbt

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

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

这些名称如javaWsjavaJpa等来自何处?如何检查这些库的版本?

2 个答案:

答案 0 :(得分:8)

tl; dr 他们由sbt-plugin(请参阅javaWsjavaJpaPlayImport.scala中的其他人)定义了&#{ 39; s 通常添加到project/plugins.sbt中的构建中。

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

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

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

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)

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)

你得到Seq[sbt.ModuleID],你可以使用Scala为你想做任何你想做的事。

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

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws
)

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

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

请记住,他们是val类型的Scala sbt.ModuleID并且......仅此而已。

答案 1 :(得分:2)

此示例中列出的依赖项是随播放安装一起提供的依赖项。版本与您正在使用的Play框架版本相匹配。

Play框架是模块化的,因此您不必在应用程序中使用其所有模块。这就是你必须指定你想要的模块的原因。