SBT`initlyOn`每配置依赖

时间:2015-07-20 13:07:15

标签: scala sbt

我有一个包含两个项目的Build。 我想使根项目类路径依赖于subProject,但仅限于某些配置。简化项目的配置:

子项目:

object HttpBuild{

  import Dependencies._

 lazy val http: Project = Project(
  "http",
  file("http"),
  settings =
  CommonSettings.settings ++
    Seq(
      version := "0.2-SNAPSHOT",
      crossPaths := false,
      libraryDependencies ++= akkaActor +: spray) ++
    Packaging.defaultPackageSettings
 )}

根:

object RootBuild extends Build {
import HttpBuild._
lazy val http = HttpBuild.http

lazy val MyConfig = config("myconfig") extend Compile

private val defaultSettings = Defaults.coreDefaultSettings

lazy val api = Project("root", file("."))
.configs(MyConfig)
.settings(defaultSettings: _*)
.dependsOn(HttpBuild.http % MyConfig)
}

现在如果我输入myconfig:compile我希望我的根项目与子项目一起编译,但它似乎不会发生。

如果我保留像dependsOn(HttpBuild.http)这样的依赖关系,它会编译,但每次都会发生,无论我使用哪种配置。

1 个答案:

答案 0 :(得分:0)

你看过this example了吗?我不是这里的专家,但与上面的代码相比,差异似乎是

  • 定义CustomCompile配置并将其用作classpathConfiguration in Common := CustomCompile
  • 依赖项是间接http % "compile->myconfig"

或许试着接近这个例子。