Как использовать разные ресурсы веб-приложений для контейнера: запуск и пакетные задачи в 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 установка для местного развития.

Прочитайте Области действия, чтобы узнать больше о настройках "области видимости", то есть об установке различных значений для разных осей.

Другие вопросы по тегам