2012-03-31 16 views
12

Sto tentando di sviluppare un'applicazione Web di gioco 2.0 insieme a un modulo Java principale e altri client Java che utilizzano SBT. È possibile configurarlo in un modo in cui l'applicazione Play è ancora costruita correttamente?Play Framework come SBT Modulo non root

Ho sviluppato una piccola app One-off Play 2.0, ma non ho esperienza diretta con SBT direttamente. Finora ho trovato la seguente struttura di directory e il file project/Build.scala.

root/ 
|---common/ 
| 
|---client1/ 
|---client2/ 
| 
|---webapp/ 
| |---app/ 
| |---conf/ 
| |---public/ 
| 
|---project/ 

.

object ApplicationBuild extends Build { 

    val appVersion  = "1.0-SNAPSHOT" 

    val appDependencies = Seq(
     // Add your project dependencies here, 
    ) 

    val common = Project("hi-common", file("common")) 

    val client1 = Project("hi-client1", file("client1")).dependsOn(common) 

    val client2 = Project("hi-client2", file("client2")).dependsOn(common) 

    val webapp = PlayProject("hi-webapp", appVersion, appDependencies, path = file("webapp"), mainLang = JAVA).settings(
     // Add your own project settings here  
    ).dependsOn(common) 

    val root = Project("hi", file(".")).aggregate(client1, client2, webapp) 

} 

corsa sbt clean package sembra funzionare in modo appropriato per i common, client1 e client2 moduli ma il modulo webapp non è confezionato in un punto in cui posso correre webapp/target/start.

Cosa posso fare per ottenere questo risultato come una singola generazione con uscita corretta?

+0

si prega di assegnare il bounty o metà di esso andrà perso :) –

+0

Non me lo permette. Credo che qualcun altro debba farlo quando rispondi alla tua stessa domanda. –

risposta

7

Il problema qui è che l'esecuzione dell'obiettivo package non è sufficiente per generare uno script iniziale. Assemblerà l'applicazione web del pacchetto completo, ma senza un singolo mezzo per avviarlo.

Il mio obiettivo era la distribuzione a Heroku che fornisce un plugin che genererà questo script di avvio per te. Il repository per l'inclusione del plug-in viene aggiunto per impostazione predefinita con un'applicazione web Play 2.0, quindi tutto ciò che devi fare è modificare i comandi che stai utilizzando per la build su sbt clean compile stage e troverai uno script start nella cartella webapp/target/.