我是SBT的新手并尝试建立一个多模块项目。我遇到了一个情况,我希望有一个单独的地方,我可以定义用于跨模块的库的版本。我试着在根项目中创建自定义settingKey:
val akkaVersion = SettingKey[String]("Akka version used in our project")
name := "hello-app"
version in ThisBuild := "1.0.0"
organization in ThisBuild := "com.jaksky.hello"
scalaVersion := "2.10.4"
akkaVersion in ThisBuild:= "2.3.4"
// Common settings/definitions for the build
def OurProject(name: String): Project = (
Project(name, file(name))
)
lazy val common = (
OurProject("common")
)
lazy val be_services = (
OurProject("be-services")
dependsOn(common)
)
在项目服务方面,我尝试了以下方法:
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % akkaVersion.value,
"com.typesafe.akka" %% "akka-cluster" % akkaVersion.value,
"com.typesafe.akka" %% "akka-kernel" % akkaVersion.value,
"com.typesafe.akka" %% "akka-remote" % akkaVersion.value,
"com.typesafe.akka" %% "akka-slf4j" % akkaVersion.value,
"ch.qos.logback" % "logback-classic" % "1.0.13"
)
这里的要点是akkaVersion不可见(找不到akkaVersion - 这是错误信息)。
我的任务:
我找到了以下可能性:
完成图片 - 使用SBT 0.13.5
我认为这是一个根本问题,我不是第一个面对这个问题的人。
感谢您帮助我
答案 0 :(得分:2)
.sbt文件中的定义在其他.sbt文件中不可见。要在.sbt文件之间共享代码,请在构建根目录的项目/目录中定义一个或多个Scala文件。