2015-06-10 14 views
5

Ho una definizione qualcosa di multi-progetto come il seguente:Come combinare crossProject e DependsOn

lazy val commonSettings = settings(
    libraryDependencies ++= Seq(
    "ch.qos.logback" % "logback-classic" % "1.1.2", 
    ... 
) 

lazy val core = (project in file(".")). 
    settings(commonSettings: _*). 
    settings(... 
) 

lazy val web = (project in file("web")). 
    settings(commonSettings: _*). 
    settings(... 
).dependsOn(core) 

Il problema è che voglio impostare il progetto web di utilizzare il modello client/server Scala JS. Quindi ho bisogno di espandere il progetto web per usare crossProject per dividere le parti js/jvm/shared. Ma non sono sicuro del modo migliore per raggiungere questo obiettivo. Se provo a fare qualcosa di simile:

lazy val web = crossProject. 
    settings(commonSettings: _*). 
    settings(... 
).jsSettings(... 
).jvmSettings(... 
).dependsOn(core) 

ottengo un errore di compilazione per il mio build.scala:

... tipo non corrispondente; [errore] trovato: sbt.Project [errore] richiesto: org.scalajs.sbtplugin.cross.CrossClasspathDependency [errore] lazy val web = crossProject.settings(). jsSettings(). jvmSettings(). dependsOn (core) [error]
^

+0

Puoi condividere il messaggio di errore completo? Perché vuoi estendere un progetto esistente? Hai esaminato l'esempio [qui] (http://www.scala-js.org/api/sbt-scalajs/0.6.1/index.html#org.scalajs.sbtplugin.cross.CrossProject)? – marios

+0

Al contrario, probabilmente vorrai rendere il tuo 'core' un progetto incrociato, e lasciare' web' un normale progetto con '.enablePlugins (ScalaJSPlugin)'. – sjrd

risposta

3

lasciare fuori il DependsOn per il progetto web.

lazy val webJS = web.js.dependsOn(...) 

Ha fatto il trucco per me.

+0

non sembra funzionare più ora – jhegedus