Передача внешних аргументов в sbt jar (созданный с помощью sbt-assembly)

Я создал проект jar сборки на основе https://github.com/sbt/sbt-assembly и хотите загрузить "logback.xml" и "application.conf" извне, которые переопределяют оба файла по умолчанию, упакованные в fatjar.

Что-то похожее на это

  java -jar XXX.jar -Dlogger.resource=prod-logger.xml -Dconf.resource=application.conf

Очень похоже на то, что предоставляет игра http://www.playframework.com/documentation/2.0/SettingsLogger

Можно ли это сделать и если да то как?


person conikeec    schedule 25.07.2013    source источник


Ответы (1)


Конфигурация журнала говорит:

  1. Logback пытается найти файл с именем logback.groovy в пути к классам.
  2. Если такой файл не найден, logback пытается найти файл с именем logback-test.xml в пути к классам.
  3. Если такой файл не найден, он проверяет наличие файла logback.xml в пути к классам.
  4. Если ни один из файлов не найден, logback автоматически настраивается с помощью BasicConfigurator, что приводит к тому, что выходные данные журнала направляются на консоль.

Поэтому, если вы хотите настроить это извне, вам необходимо иметь доступ к пути к классам. -jar раздел о java — средстве запуска приложений Java говорит:

При использовании этого параметра файл JAR является источником всех пользовательских классов, а другие параметры пути к пользовательскому классу игнорируются.

Сюда входят -cp опции. Итак, вы застряли с использованием java -cp XXX.jar:somedir Main и помещаете свои конфигурации в somedir.

person Eugene Yokota    schedule 24.08.2013