2013-08-16 61 views
8

Tôi muốn chuyển thông số -Dconfig.file=conf/dev.conf cho ứng dụng của mình thông qua Build.scala khi tôi sử dụng lệnh run.Cách chuyển javaOptions sang "chạy chạy" thông qua Build.scala

Tôi cố gắng để đưa một cái gì đó giống như trong này trong tôi Build.scala:

val mySettings = Seq(
    (javaOptions in run) ++= Seq("-Dconfig.file=conf/dev.conf") 
) 

val main = play.Project(appName, appVersion, appDependencies).settings(
    mySettings: _* 
) 

Nhưng nó không - từ những gì tôi đã thu thập được điều này là do SBT không phân nhánh một JVM mới khi tôi sử dụng chạy. Bất kỳ giải pháp nào khác ngoại trừ của việc đặt biến môi trường?

+1

Có cài đặt 'ngã ba' trong bảng điều khiển phát. 'help fork' nói" Nếu true, hãy dùng một JVM mới khi chạy. Nếu sai, chạy trong cùng một JVM như là build. " Tôi không có ý tưởng ở đâu hoặc làm thế nào để thay đổi thiết lập đó mặc dù. – Kapep

Trả lời

2

Vấn đề có vẻ là Play chạy trong cùng một JVM như JVM SBT để các tùy chọn Java được đặt trong SBT không được sử dụng.

Bạn có thể thử một cái gì đó như:

  • Sử dụng fork in run := true để một JVM mới được sinh ra, bằng cách sử dụng tùy chọn Java bạn cung cấp cho

  • Launch SBT với -Dconfig.file=conf/dev.conf

  • Set sở hữu hệ thống theo cách thủ công trước khi chạy ứng dụng trong cùng một JVM: System.setProperty("config.file","conf/dev.conf")

Tôi không chắc chắn tất cả các giải pháp này làm việc nhưng nó có giá trị cố gắng họ