在一个scala项目中,该项目用作具有多个模块的共享库,其中定义了在同一项目中所有build.sbt中可以全局访问的值。
项目的build.sbt在级别0:
lazy val root = (project in file(".")).settings(commonSettings).aggregate(module1,module2,module3)
lazy val module1 = project.settings(commonSettings)
lazy val module2 = project.settings(commonSettings)
lazy val module3 = project.settings(commonSettings)
我在module1和module2中需要相同版本的spark依赖关系,但对于module3则没有spark依赖关系。所以我目前在module1和2的build.sbt中都有值sparkVersion,这感觉很多余。同样,从全局变量读取值可确保在所有模块中使用一致的版本。
val sparkVersion = "2.1.0"
"org.apache.spark" %% "spark-core" % sparkVersion,
答案 0 :(得分:1)
您可以在根project/
目录中创建一个 Settings.scala ,例如:
├── build.sbt
├── module1
└── project
└── Settings.scala
Settings.scala
:
object Settings {
lazy val sparkVersion = "2.1.0"
}
在 module1 和 module2 build.sbt
中,您可以用作 Settings.sparkVersion 。