在play框架中解释Build.scala

时间:2014-02-06 01:19:50

标签: 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"    %   "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/"
    )

}

如何将appDependenciesresolvers相匹配?或者我如何知道我需要为resolvers添加哪些appDependencies?我在哪里查看旋转变压器的回购?什么是libraryDependencies?它们与appDependencies有什么不同?

感谢。

1 个答案:

答案 0 :(得分:4)

我们需要解决一些问题。

让我们首先区分 sbt 构建文件和Build.scala。虽然构建文件与Maven pom或Gradle构建文件完全相同,但请将Build.scala视为具有Scala的全部功能和表现力的构建功能,因为它与其他任何类似的Scala类一样。我相信尽管最新版本的 sbt ,两者之间的差距已经缩小。

现在在 sbt Build.scala中,您都有library dependencies的概念,它们是包含可用于项目的代码的jar库。这些库可以在很多地方找到 - Maven存储库,本地文件系统等。您可以使用resolvers来指定这些位置。

所以你要告诉你需要哪些罐子以及在哪里找到它们。

至于appDependencies,这实际上并不是一件事。正如我所说,Build.scala是一个类似于任何其他类的类,而appDependencies只是一个变量名。使用该名称是有意义的,因为Seq是您将传递给Project构造函数的内容。