我已经注意到人们使用object Dependencies
模式并在import Dependencies._
中执行object build
,如下所示:
import sbt._
import Keys._
object Dependencies {
// dependencies declared as vars
}
object build extends Build {
// bring Dependencies' vars to scope
import Dependencies._
// project definitions
}
最近我发现了另一种具有如下特征的方法:
import sbt._
import Keys._
trait Dependencies {
// dependencies declared as vars
}
// bring Dependencies' vars to scope by with
object build extends Build with Dependencies {
// project definitions
}
我认为特征方法为构建对象提供了更好的命名,因为它读取对象构建是一个内联依赖的构建。
这些方法之间有什么区别(除了可能更好的写入/读取对象)?
我认为这个问题很容易归结为Scala中对象和特征之间的差异,但是因为它缩小了构建定义(我认为不需要那么多的表达性)我以为我在这里要求构建定义常见模式。
答案 0 :(得分:0)
两者之间没有语义差异。如果你必须选择一个,我更喜欢object Dependencies
变体,因为这个变体在build.sbt
个文件中效果更好。