无法使用有效的SBT导入Project / dependencies.scala

时间:2016-03-01 15:13:29

标签: scala sbt

我在同一个项目中有很多模块,这样的结构就像以下几行一样:

Root
- ProjA
- ProbB
- ProjC
build.sbt

我有一个build.sbt,其中包含项目根目录中的所有细节,它很笨重,当我需要给某人ProjB时遇到问题。

然后我在Effective SBT上找到了一篇文章和幻灯片,并认为这听起来像是一个很好的解决方案。虽然实施并不轻松。

我正在将结构更新为:

Root
- ProjA
--build.props
--dependencies.scala
-ProjA
--build.props
--dependencies.scala
build.sbt

依赖关系的例子:

object Dependencies {

  //specific versions (if required) use '% name-version' to add to the dependency

  //libraries
  val scalaTest       = "org.scalatest" % "scalatest_2.10" % "2.2.6"
  val slf4j           = "org.slf4j" % "slf4j-log4j12" % "1.7.13"
  val akkaActor       = "com.typesafe.akka" % "akka-actor_2.10" % "2.3.14"
  val akkaTest        = "com.typesafe.akka" % "akka-testkit_2.10" % "2.3.14"
  val awsCloudwatch   = "com.amazonaws" % "aws-java-sdk-cloudwatch" % 

"1.10.28"
  val cloudwatchDependencies = Seq(awsCloudwatch, akkaActor, akkaTest)

我正在尝试在build.sbt中使用它,但它不允许我导入文件

build.sbt中的

我有:

  lazy val cloudwatch = (project in file("cloudwatch")).
  settings(commonSettings: _*).
  settings(
name := "Cloudwatch",
libraryDependencies += cloudwatchDependencies

但我无法导入或获取依赖项。我错过了一些明显错误的东西吗?这是正确/错误的方法吗?

感谢您提供任何帮助/建议

1 个答案:

答案 0 :(得分:1)

配置对象需要驻留在特殊位置:/project。 如果你移动那里一切都应该没问题。

请参阅:http://www.scala-sbt.org/0.13.5/docs/Getting-Started/Multi-Project.html#common-code

如果您希望拥有每个项目配置,则可以为每个项目单独build.sbt。这种方法有额外的好处,它是解决这个问题的惯用方法。

设置可能如下所示:

root
-build.sbt
-cloudwatch.sbt
- ProjA
--build.sbt
-ProjB
--build.sbt

如果您仍需要更多粒度,则可能会有多个*.sbt个文件,这些文件都将包含在build.sbt

root
-build.sbt
- ProjA
--build.sbt
-ProjB
--build.sbt
相关问题