Scala воспроизводит файл сообщений, чтобы встроить или повторно использовать версию в build.sbt

#scala #playframework #sbt #playframework-2.3

#scala #playframework #sbt #playframework-2.3

Вопрос:

У меня есть проект воспроизведения Scala, и в настоящее время я показываю текущую версию приложения в некотором месте в моем основном шаблоне. Версию, которую я могу легко определить в conf/messages файле. Однако, поскольку у меня есть автоматическая сборка для создания релизов, итерации выпуска будут обновлять build.sbt , увеличивая версию в соответствии с выпуском, например version := "1.0.6-SNAPSHOT"

Я мог бы использовать ту же механику во время выпуска, чтобы также обновить свой conf/messages файл, но вместо этого я бы предпочел, чтобы мой conf/messages файл включал информацию о версии build.sbt , например, от alla application.version=${sbt.application.version} .

Как я могу это сделать? возможно ли это вообще?

ОБНОВЛЕНИЕ: стоит отметить, что в Maven эти параметры сборки становятся системными свойствами Java и могут быть легко использованы.

Ответ №1:

Вы можете использовать sbt-buildinfo плагин для создания исходного кода Scala на основе build.sbt .

Плагин генерирует BuildInfo объект, который содержит информацию, которую вы затем можете использовать для отображения версии приложения.

В противном случае я не думаю, что вы сможете получить доступ к информации sbt из своей конфигурации.

Ответ №2:

Для достижения этой цели вы можете использовать плагин xsbt-filter. В основном он работает как механизм фильтрации ресурсов Maven и по умолчанию предоставляет имя проекта, версию и т. Д. Вы можете дополнительно настроить его для предоставления других свойств.