Tus*_*tel 10 sbt playframework
我正在使用Java在Play Framework中开始一个新项目.我检查了build.sbt文件,无法理解依赖项名称的来源?
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
javaJpa
}
Run Code Online (Sandbox Code Playgroud)
这些名字在哪里等javaWs,javaJpa来自?如何检查这些库的版本?
tl; dr它们由通常添加到构建中的sbt-plugin(参见javaWs和javaJpa或其他PlayImport.scala中)定义.project/plugins.sbt
使用sbt或activator工具来了解构建部件的来源.我假设您使用sbt(但以下适用于activator或play命令行工具).
请注意,使用Scala语言描述了sbt构建,并且所有sbt构建都是类型安全的,并使用Scala编译器进行编译.
sbt插件只是可以应用于项目的一组设置,也可以定义val与可用于Play项目的不同依赖项相对应的Scala ,例如javaJdbc.您可以val使用consoleProject(我在下面描述的第二个选项)查询s .
在项目内部,执行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)
在项目内部,执行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 val的sbt.ModuleID类型而且......仅此而已.
此示例中列出的依赖项是安装 play 时附带的依赖项。这些版本与您正在使用的 Play 框架版本相匹配。
Play 框架是模块化的,因此您不必在应用程序中使用它的所有模块。这就是为什么您必须指定所需的模块。
| 归档时间: |
|
| 查看次数: |
1756 次 |
| 最近记录: |