2015-05-20 15 views
8

ho un accumulo multi-progetto e sto cercando di aggiungere il vaso con le attività generate da SBT-web al classpath dello script lancioaggiungere vaso risorse SBT-Internet per classpath di SBT-native-confezionatore

Il progetto a cui sono interessato si chiama website.

digitando show website/web-assets:packageBin in sbt crea e mostra il barattolo con le risorse. Ho provato a mettere in (managedClasspath in website) += website/web-assets:packageBin, ma che non viene compilato correttamente:

path/to/build.sbt:58: error: value/is not a member of sbt.Project

managedClasspath in website += website/web-assets:packageBin

Come posso creare il barattolo con un patrimonio quando si esegue il compito palco, e posizionarlo sul classpath dello script lancio

risposta

2

È stanno mescolando i comandi sbt-console con i comandi build.sbt.

Il sbt-web docs invia un chiaro esempio di come si fa per un singolo progetto:

(managedClasspath in Runtime) += (packageBin in Assets).value 

Così ora facciamo la stessa cosa per un accumulo multi-modulo. Supponendo di avere un build.sbt che assomiglia a questo

val root = (project in ".") 
     .aggregate(common, website) 

val common = (project in "commons") 
     .settings(
     libraryDependencies ++= Seq(...), 
     ... 
    ) 

val website = (project in "commons") 
     .enablePlugins(JavaServerAppPackaging, SbtWeb) 
     .settings(
     // ------ You configure it like a single module project 
     (managedClasspath in Runtime) += (packageBin in Assets).value 
     // ---------------------------------------------------- 
    ) 
     .dependsOn(common) 

non ho ancora testato direttamente questo come io non conosco la configurazione esatta. Tuttavia questo dovrebbe darti la giusta direzione.