2013-06-19 2 views
17

В Maven вы можете иметь профили, которые могут настраивать конфигурацию сборки для разных сред. Например, DEV, QA, UAT, PRODUCTIONКак добавить конфигурацию профиля среды для SBT

Для поддержки непрерывной интеграции должен быть способ сообщить SBT, с какой средой работать.

как настроить для различных сред в SBT. Например, DEV, QA, UAT, ПРОИЗВОДСТВО?

спасибо

+0

Может http://stackoverflow.com/questions/16600119/with-sbt-how-do-ia-specify-an-alternate-project-root-other-than-the- ток-ди/16761503 # 16761503? – Ezhik

ответ

20

Вы можете сделать это, создав собственную конфигурацию.

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"} 
)): _*) 

Вы поместите свой конфигурационный файл в src/dev/resources и src/qa/resources, и это должно быть частью вашего пути к классам, когда вы говорите dev:run или dev:package. Вот быстрый тест:

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

Я добавил это к моей Build.scala, но при запуске, например, dev: package Я просто получаю «Нет такой настройки/задачи». Любой совет? – Daniel

+0

Что такое 'Build.scala'? Сделайте 'show ivyConfigurations', чтобы увидеть конфигурации в проекте. Бьюсь об заклад, вы не добавили конфигурацию 'dev' или не выполнили' inConfig'. –

Смежные вопросы