2012-03-31 10 views
12

Ich versuche eine Play 2.0-Webanwendung neben einem Java-Kernmodul und anderen Java-Clients mit SBT zu entwickeln. Ist es möglich, dies so zu konfigurieren, dass die Play-Anwendung noch ordnungsgemäß erstellt wird?Play Framework als SBT Nicht-Root-Modul

Ich habe eine kleine einmalige Play 2.0 App entwickelt, aber ich habe keine Erfahrung damit, direkt mit SBT zu arbeiten. Bis jetzt habe ich die folgende Verzeichnisstruktur und project/Build.scala Datei gefunden.

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) 

} 

sbt clean package Laufen scheint angemessen zu arbeiten für die common, client1 und client2 Module aber das webapp Modul ist nicht auf einen Punkt verpackt, wo ich webapp/target/start laufen kann.

Was kann ich tun, um dies als einen einzelnen Build mit richtiger Ausgabe zu erreichen?

+0

Bitte geben Sie das Kopfgeld oder die Hälfte davon wird verloren gehen :) –

+0

Es wird mich nicht lassen. Ich glaube, jemand anderes muss es tun, wenn Sie Ihre eigene Frage beantworten. –

Antwort

7

Das Problem hier ist, dass das Ausführen des Ziels package nicht ausreicht, um ein Startskript für Sie zu generieren. Es wird die vollständige Paket-Webanwendung zusammenstellen, aber ohne eine einzige Möglichkeit, es zu starten.

Mein Ziel war die Bereitstellung bei Heroku, die bequem ein Plugin zur Verfügung stellen, das dieses Startskript für Sie generiert. Das Repository für die Einbindung des Plugins wird standardmäßig mit einer Play 2.0-Webanwendung hinzugefügt. Sie müssen lediglich die Befehle für den Build zu sbt clean compile stage ändern, und im Ordner webapp/target/ finden Sie ein start-Skript.