2013-06-19 40 views
17

Trong Maven bạn có thể có Cấu hình, có thể thiết lập cấu hình xây dựng cho các môi trường khác nhau. Ví dụ: DEV, QA, UAT, PRODUCTIONCách Thêm Cấu hình Môi trường Cấu hình vào SBT

Để hỗ trợ tích hợp liên tục, phải có cách để báo cho SBT biết nên chạy với môi trường nào.

cách thiết lập cho các môi trường khác nhau trong SBT. Ví dụ: DEV, QA, UAT, PRODUCTION?

cảm ơn

+0

Có thể http://stackoverflow.com/questions/16600119/with-sbt-how-do-ia-specify-an-alternate-project-root-other-than-the- current-di/16761503 # 16761503? – Ezhik

Trả lời

20

Bạn có thể thực hiện việc này bằng cách tạo cấu hình tùy chỉnh.

val ProfileDev = config("dev") extend(Runtime) 
val ProfileQA = config("qa") extend(Runtime) 

val root = (project in file(".")). 
    configs(ProfileDev, ProfileQA). // add config here! 
    settings( 
    name := "helloworld", 
    .... 
). 
    settings(inConfig(ProfileDev)(Classpaths.configSettings ++ Defaults.configTasks ++ Defaults.resourceConfigPaths ++ Seq(
    unmanagedResourceDirectories += {baseDirectory.value/"src"/configuration.value.name/"resources"} 
)): _*). 
    settings(inConfig(ProfileQA)(Classpaths.configSettings ++ Defaults.configTasks ++ Defaults.resourceConfigPaths ++ Seq(
    unmanagedResourceDirectories += {baseDirectory.value/"src"/configuration.value.name/"resources"} 
)): _*) 

Sau đó bạn đặt tập tin cấu hình của bạn trong src/dev/resourcessrc/qa/resources, và nó sẽ là một phần của classpath của bạn khi bạn nói dev:run hoặc dev:package. Đây là bài kiểm tra nhanh:

object Main extends App { 
    println(xml.XML.load(this.getClass.getResource("/config.xml"))) 
} 
+1

Tôi đã thêm điều này vào Build.scala của mình, nhưng khi chạy ví dụ: dev: package Tôi chỉ nhận được "No such setting/task". Lời khuyên nào? – Daniel

+0

'Build.scala' là gì? Làm 'hiển thị ivyConfigurations' để xem các cấu hình trong một dự án. Tôi đặt cược bạn chưa thêm 'dev' config hoặc chưa thực thi' inConfig'. –

Các vấn đề liên quan