2015-07-20 2 views
0

У меня есть сборка с двумя проектами в ней. Я хочу сделать корневой путь класса проекта зависимым от subProject, но только в определенной конфигурации. конфиг упрощенный проекта:SBT `dependOn` Зависимость от конфигурации

подпроекта:

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), он компилируется, но это происходит каждый раз, независимо от того, какую конфигурацию я использую.

+0

Вы не хотите, чтобы у вас было 2 объекта. Там должно быть только 1 сборка. –

+0

@DaleWijnand Правда, спасибо. Я исправил описание – SergeyPopov

ответ

0

Вы просматривали this example. Я не специалист здесь, но по сравнению с кодом выше, разница, как представляется,

  • что конфигурация CustomCompile определяется и используется в качестве classpathConfiguration in Common := CustomCompile
  • , что зависимость является косвенным http % "compile->myconfig"

Возможно, попытайтесь приблизиться к этому примеру.

Смежные вопросы