Как играть! Команда dist dist добавляет некоторые файлы/папки в окончательный пакет?
Я хотел играть! framework dist
, чтобы добавить некоторые папки и файлы в последний файл zip. Они необходимы для работы приложения.
Есть ли волшебная конфигурация project/Build.scala
, чтобы сделать это возможным? Я не мог найти его в Play! documentation.
Ответы
Ответ 1
Play использует sbt-native-packager, который поддерживает включение произвольных файлов, добавляя их к сопоставлениям:
mappings in Universal ++=
(baseDirectory.value / "scripts" * "*" get) map
(x => x -> ("scripts/" + x.getName))
Синтаксис предполагает воспроизведение 2.2.x.
Ответ 2
Приложение My Play не включало файлы шаблонов (в приложении /views/ ) в дистрибутиве, и я добавил их с этим в Build.scala:
val main = play.Project(appName, appVersion, appDependencies).settings(
// Add your own project settings here
playAssetsDirectories <+= baseDirectory / "app/views"
)
Ответ 3
Изучая исходный код dist
, я думаю, что это невозможно.
Но вы можете использовать команду play clean compile stage
для упаковки приложения и его зависимостей (из doc):
Это очищает и компилирует ваше приложение, извлекает требуемое зависимостей и копирует их в целевой/поставленный каталог. Это также создает цель /start script, которая запускает сервер воспроизведения.
Затем вам придется написать свой собственный script, чтобы добавить ваши каталоги и создать zip.
Ответ 4
Не уверен, с какой Play Play это поддерживается, но Играть! 2.5, вы можете добавить любые произвольные файлы, которые вы хотите упаковать, в папку "dist" (в корне проекта). Я использую собственный пакет SBT для создания моего проекта в RPM, и эта работа прекрасно работает.
Ответ 5
Я могу поспорить, что я не буду вас удовлетворять, но, может быть, вы не потратите времени на поиски. Поскольку Nico указал на такую возможность, самый быстрый способ, который вы можете использовать, - написать bash script (или *.bat файл), чтобы сделать это.
Я потратил час на поиск решения... и 15 минут на запись script, который распаковывает, изменяет, зашифровывает и отправляет файл в удаленный пункт назначения, поэтому подумайте, не будет ли он лучше для вас.