有人可以详细解释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/"
)
}
如何将appDependencies
与resolvers
相匹配?或者我如何知道我需要为resolvers
添加哪些appDependencies
?我在哪里查看旋转变压器的回购?什么是libraryDependencies
?它们与appDependencies
有什么不同?
感谢。
答案 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
构造函数的内容。