【问题标题】:SBT `dependsOn` Per-configuration dependencySBT `dependsOn` 每个配置依赖
【发布时间】:2017-10-08 22:28:52
【问题描述】:

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

子项目:

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) 这样的依赖项,它会编译,但每次都会发生,无论我使用哪种配置。

【问题讨论】:

  • 您不想让 2 个对象扩展 Build。应该只有 1 个构建。
  • @DaleWijnand 真的,谢谢。我已经修复了描述

标签: scala sbt


【解决方案1】:

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

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

也许试着更接近那个例子。

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 2013-11-18
    • 1970-01-01
    • 2015-10-26
    • 2017-03-06
    • 2017-06-11
    • 2014-04-28
    • 1970-01-01
    • 2019-07-28
    相关资源
    最近更新 更多