2012-03-31 14 views
12

Tôi đang cố gắng phát triển ứng dụng web Play 2.0 cùng với mô-đun Java lõi và các ứng dụng khách Java khác bằng SBT. Có thể cấu hình điều này theo cách mà ứng dụng Play vẫn được xây dựng đúng cách không?Chơi khung làm mô-đun phi gốc SBT

Tôi đã phát triển một ứng dụng Play-off một lần nhỏ trước đó nhưng tôi không có kinh nghiệm làm việc với SBT trực tiếp. Cho đến nay tôi đã tìm ra cấu trúc thư mục sau và tệp 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) 

} 

Chạy sbt clean package dường như làm việc một cách thích hợp cho common, client1, và client2 module nhưng module webapp không được đóng gói đến một điểm mà tôi có thể chạy webapp/target/start.

Tôi có thể làm gì để đạt được điều này dưới dạng một bản dựng duy nhất với đầu ra phù hợp?

+0

vui lòng chỉ định tiền thưởng hoặc một nửa số tiền đó sẽ bị mất :) –

+0

Nó sẽ không cho phép tôi. Tôi tin rằng người khác phải làm điều đó khi bạn trả lời câu hỏi của riêng bạn. –

Trả lời

7

Vấn đề ở đây là chỉ cần chạy mục tiêu package là không đủ để tạo tập lệnh bắt đầu cho bạn. Nó sẽ lắp ráp các ứng dụng web trọn gói hoàn toàn nhưng không có một phương tiện duy nhất để bắt đầu nó.

Mục tiêu của tôi là triển khai cho Heroku, người thuận tiện cung cấp plugin sẽ tạo tập lệnh bắt đầu này cho bạn. Kho lưu trữ của plugin được thêm vào theo mặc định với ứng dụng web Play 2.0 nên tất cả những gì bạn phải làm là sửa đổi các lệnh mà bạn đang sử dụng để xây dựng thành sbt clean compile stage và bạn sẽ tìm thấy tập lệnh start trong thư mục webapp/target/.