Как использовать разные ресурсы веб-приложений для контейнера: запуск и пакетные задачи в SBT
У меня есть веб-приложение с чистым JS-интерфейсом и Scala-сервером. Я хотел бы использовать Grunt в моем конвейере сборки для обработки src/main/webapp в целевой каталог dist/webapp с объединенными / минимизированными файлами js и html, скомпилированными листами sass и т. Д. Я также хочу сохранить оригинальные файлы JS и HTML для локального тестирования используя container:start task, в то время как пакетная задача создала бы мой WAR-файл с ресурсами, обработанными Grunt. Когда я использую следующие настройки в SBT:
webappResources в Compile <<= baseDirectory { bd => Seq(bd / "dist" / "webapp") }
затем я достигаю второй цели - моя WAR создается с использованием ресурсов webapp в dist/webapp. Однако, при использовании контейнера: запуск во время локальной разработки, я привязываюсь к той же директории. Есть ли способ определить разные каталоги для разных целей?
1 ответ
xsbt-web-plugin поддерживает SBT 0.13.1, так что вы можете использовать более приятный синтаксис для определения webappResources
в Compile
объем:
webappResources in Compile := Seq(baseDirectory.value / "dist" / "webapp")
Я могу ошибаться, но webappResources
один будет работать тоже.
webappResources := Seq(baseDirectory.value / "dist" / "webapp")
или даже (если вы не хотите заменить исходное значение, чтобы не добавлять значение):
webappResources += baseDirectory.value / "dist" / "webapp"
Что касается решения, я бы использовал следующее (непроверено) в build.sbt
:
webappResources in package := Seq(baseDirectory.value / "dist" / "webapp")
и оставьте значение по умолчанию для webappResources
установка для местного развития.
Прочитайте Области действия, чтобы узнать больше о настройках "области видимости", то есть об установке различных значений для разных осей.