2012-03-31 19 views
12

Estoy intentando desarrollar una aplicación web Play 2.0 junto con un módulo central de Java y otros clientes Java que usan SBT. ¿Es posible configurar esto de forma tal que la aplicación Play todavía esté construida correctamente?Play Framework como SBT Non-Root Module

He desarrollado una pequeña aplicación Play 2.0 única pero no tengo experiencia trabajando directamente con SBT. Hasta ahora, he encontrado la siguiente estructura de directorios y el archivo 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) 

} 

Correr sbt clean package parece funcionar apropiadamente para los common, client1 y client2 módulos pero el módulo webapp no se empaqueta a un punto en el que se puede ejecutar webapp/target/start.

¿Qué puedo hacer para lograr esto como una sola estructura con una producción adecuada?

+0

asigne la generosidad o la mitad de ella se perderán :) –

+0

No me lo permite. Creo que alguien más tiene que hacerlo cuando respondes tu propia pregunta. –

Respuesta

7

El problema aquí es que simplemente ejecutar el objetivo package no es suficiente para generar un script de inicio para usted. Armará la aplicación web completamente empaquetada pero sin un solo medio para iniciarla.

Mi objetivo era la implementación en Heroku, que proporciona convenientemente un complemento que generará este script de inicio para usted. El repositorio para la inclusión del complemento se agrega de forma predeterminada con una aplicación web Play 2.0, de modo que todo lo que tiene que hacer es modificar los comandos que está utilizando para la compilación en sbt clean compile stage y encontrará una secuencia de comandos start en la carpeta webapp/target/.