tl;dr它们的定义是sbt-plugin
(see javaWs and javaJpa或其他人在PlayImport.scala) 那是usually添加到内置project/plugins.sbt
.
Use sbt
or activator
用于了解构建部件来自何处的工具。我假设你使用sbt
(但以下情况适用于activator
or play
命令行工具也是如此)。
请注意,sbt 构建是使用 Scala 语言描述的,并且所有 sbt 构建都是类型安全的并使用 Scala 编译器进行编译。
sbt 插件只是一堆可以应用于项目的设置,也可以定义 Scalaval
对应于可用于 Play 项目的不同依赖项,例如javaJdbc
。您可以查询val
s using consoleProject
(我在下面将其描述为第二个选项)。
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 版本。
With consoleProject
您输入已加载构建的 Scala REPL。您在 Scala REPL 中,可以使用 Scala 查询构建的不同部分。
Use 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)
You get Seq[sbt.ModuleID]
你可以使用 Scala 对这个值做任何你想做的事情。
Since build.sbt
该项目如下所示(我只展示了libraryDependencies
):
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws
)
when in consoleProject
我可以问这些名字指向什么,如下:
scala> jdbc
res0: sbt.ModuleID = com.typesafe.play:play-jdbc:2.3.2
请记住,它们是 Scalaval
s of sbt.ModuleID
输入然后...仅此而已。