Playframework javaWs、javaJpa等依赖项从何而来?
我正在用Java在Play框架中启动一个新项目。我检查了Playframework javaWs、javaJpa等依赖项从何而来?,playframework,sbt,Playframework,Sbt,我正在用Java在Play框架中启动一个新项目。我检查了build.sbt文件,无法理解依赖项名称来自何处 libraryDependencies ++= Seq( javaJdbc, cache, javaWs, javaJpa } 像javaWs、javaJpa等这些名字是从哪里来的?如何检查这些库的版本?本例中列出的依赖项是安装play时附带的依赖项。这些版本与您正在使用的Play framework版本相匹配 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插件只是一组可以应用于项目的设置,它还可以定义Scalaval
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
记住,它们是Scalaval
s ofsbt.ModuleID
类型,除此之外……我可以要求批准最终对您有效的答案(如果有的话)吗,或者通过其他问题来寻求更多细节?链接已失效。不幸的是。
scala> jdbc
res0: sbt.ModuleID = com.typesafe.play:play-jdbc:2.3.2