Как установить системное свойство для jetty () xsbt-web-plugin?

Я перенес свой проект на 0.13.5 и начал использовать xsbt-web-plugin.

Я хотел бы настроить logback для использования файла конфигурации вне classpath, который устанавливается системным свойством logback.configurationFile (так что я могу сохранить logconfig вне файла войны).

Ранее я бы просто установил:

System.setProperty("logback.configurationFile", "/some/path/logback.xml")

внутри project/build.scala и logback бы его забрать.

Однако после обновления sbt до 0.13.5 и перехода к системным свойствам xsbt-web-plugin, установленным в sbt, кажется, что они недоступны во время выполнения (пристань).

Я попытался установить системные свойства по-разному, также передав его с помощью -D флаг при запуске sbt.

На консоли sbt я вижу свойство:

eval sys.props("logback.configurationFile")
[info] ans: String = /some/path/logback.xml

Но это не доступно внутри веб-приложения.

Любые идеи о том, как установить системные свойства, которые будут доступны внутри веб-приложения?

Я пробовал оба jetty() а также tomcat(), Такое же поведение

Обновление: я закончил с:

jetty(options = new ForkOptions(runJVMOptions = Seq("-Dlogback.configurationFile=/some/path/logback.xml")))

это работает.

1 ответ

Решение

Использование javaOptions in container += "-Dlogback.configurationFile=/some/path/logback.xml" как описано в разделе Установить раздвоенные параметры JVM.

javaOptions один (без in container) должно работать тоже, что можно было увидеть в inspect actual под Dependencies а также Delegates:

[play-new-app] $ inspect actual container:javaOptions
[info] Task: scala.collection.Seq[java.lang.String]
[info] Description:
[info]  Options passed to a new JVM when forking.
[info] Provided by:
[info]  {file:/Users/jacek/sandbox/play-new-app/}root/container:javaOptions
[info] Defined at:
[info]  /Users/jacek/sandbox/play-new-app/build.sbt:26
[info] Dependencies:
[info]  */*:javaOptions
[info] Delegates:
[info]  container:javaOptions
[info]  *:javaOptions
[info]  {.}/container:javaOptions
[info]  {.}/*:javaOptions
[info]  */container:javaOptions
[info]  */*:javaOptions
[info] Related:
[info]  */*:javaOptions
Другие вопросы по тегам