解释play框架中的Build.scala
有人能详细解释Build.scala的语法吗?例如,我有以下解释play框架中的Build.scala,scala,playframework,playframework-2.0,sbt,Scala,Playframework,Playframework 2.0,Sbt,有人能详细解释Build.scala的语法吗?例如,我有以下Build.scala: import sbt._ import Keys._ import play.Project._ object Build extends sbt.Build { val appName = "myapp" val appVersion = "1.0" val appDependencies = Seq( "postgresql" % "p
Build.scala
:
import sbt._
import Keys._
import play.Project._
object Build extends sbt.Build {
val appName = "myapp"
val appVersion = "1.0"
val appDependencies = Seq(
"postgresql" % "postgresql" % "9.1-901-1.jdbc4",
javaCore,
javaJdbc,
javaEbean,
"org.json" %"org.json" % "chargebee-1.0",
"org.reflections" % "reflections" % "0.9.8",
"org.mockito" % "mockito-all" % "1.9.5" % "test"
)
val main = play.Project(appName, appVersion, appDependencies).settings(
libraryDependencies += "com.jolbox" % "bonecp" % "0.8.0-rc2-SNAPSHOT",
resolvers += Resolver.url("sbt-plugin-snapshots", new URL("http://repo.scala-sbt.org/scalasbt/sbt-plugin-snapshots/"))(Resolver.ivyStylePatterns),
resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/"
)
}
如何将appDependencies
与解析器匹配?或者,我如何知道需要为appDependencies
添加哪些解析器?我应该在解析器的回购协议中查找什么?什么是libraryDependencies
?它们与appDependencies
有何不同
谢谢。这里有几件事我们需要解决
让我们首先区分sbt构建文件和build.scala
。虽然构建文件完全类似于Maven pom或Gradle构建文件,但可以将build.scala
看作是一种具有scala全部功能和表达能力的构建功能,因为它与其他任何类一样是scala类。我相信随着sbt的最新版本,两者之间的差距已经缩小
现在,在sbt和Build.scala
中,您都有了一个概念,即哪些jar库包含可用于项目的代码。这些库可以在很多地方找到——Maven存储库、本地文件系统等等。您可以使用它们来指定这些位置
所以你要告诉他们你需要什么罐子,在哪里找到它们
至于appDependencies
,这实际上不是一件事。正如我所说,Build.scala
和其他类一样是一个类,appDependencies
只是一个变量名。使用这个名称是有意义的,因为Seq
就是您将传递给项目构造函数的内容。这里有一些事情需要澄清
让我们首先区分sbt构建文件和build.scala
。虽然构建文件完全类似于Maven pom或Gradle构建文件,但可以将build.scala
看作是一种具有scala全部功能和表达能力的构建功能,因为它与其他任何类一样是scala类。我相信随着sbt的最新版本,两者之间的差距已经缩小
现在,在sbt和Build.scala
中,您都有了一个概念,即哪些jar库包含可用于项目的代码。这些库可以在很多地方找到——Maven存储库、本地文件系统等等。您可以使用它们来指定这些位置
所以你要告诉他们你需要什么罐子,在哪里找到它们
至于appDependencies
,这实际上不是一件事。正如我所说,Build.scala
和其他类一样是一个类,appDependencies
只是一个变量名。使用该名称是有意义的,因为Seq
是您将传递给项目
构造函数的内容