2012-03-31 1 views
12

SBT를 사용하여 코어 Java 모듈 및 다른 Java 클라이언트와 함께 Play 2.0 웹 애플리케이션을 개발하려고합니다. Play 애플리케이션이 여전히 올바르게 구축 된 방식으로 구성 할 수 있습니까?SBT 비 루트 모듈로 플레이 프레임

이전에 일회성 Play 2.0 앱을 개발했지만 SBT에서 직접 경험 한 경험이 없습니다. 지금까지 나는 다음의 디렉토리 구조와 project/Build.scala 파일을 생각해 냈다.

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

. sbt clean package 실행

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) 

} 

common, client1client2 모듈 적절하게 작동하는 것 같다하지만 webapp 모듈은 내가 webapp/target/start을 실행할 수있는 지점으로 포장되지 않는다.

올바른 결과물을 가진 단일 빌드로이를 수행하려면 어떻게해야합니까?

+0

부채를 할당하십시오 또는 분실 될 것입니다 : –

+0

그것은 나를 허용하지 않을 것입니다. 나는 너 자신의 질문에 대답 할 때 다른 사람이해야한다고 생각한다. –

답변

7

여기서 목표는 단순히 package 목표를 실행하는 것만으로는 시작 스크립트를 생성 할 수 없다는 것입니다. 그것은 완전한 패키지 웹 어플리케이션을 어셈블 할 것입니다.

내 목표는이 시작 스크립트를 생성하는 플러그인을 편리하게 제공하는 Heroku에 대한 배포였습니다. 플러그인의 저장소는 기본적으로 Play 2.0 웹 응용 프로그램과 함께 추가되므로 빌드에 사용하는 명령을 sbt clean compile stage으로 수정하면 webapp/target/ 폴더에 start 스크립트가 있습니다.