Как переопределить ресурсы Java при запуске Spring Boot fat-jar?

Как переопределить ресурсы Java при запуске Spring Boot fat-jar?

Я создал дальнюю банку Spring Boot, которая содержит внутри в качестве ресурса файл конфигурации log4j.xml. Теперь, когда я запускаю толстую банку, я пытаюсь переопределить ее таким образом.

$ java -cp conf/ -jar target/myapp.jar

и я положил в папку conf/ новый файл log4j.xml. Но ничего, он продолжает использовать ресурс внутри банки.


person dash1e    schedule 11.05.2021    source источник


Ответы (1)


Если ваша цель состоит только в том, чтобы определить свой собственный файл конфигурации log4j.xml, это может помочь:

java -Dlogging.config='/path/to/log4j2.xml' -jar target/myapp.jar

(это уже упоминалось в Как я могу изменить расположение файла log4j2.xml по умолчанию в Java Spring Boot?)

Если вы просто хотите добавить ресурсы путем добавления пути к классам, вы можете обратиться к https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-executable-jar-format.html.#executable-jar-property-launcher-features, где я нашел loader.path :

loader.path может содержать каталоги (которые рекурсивно сканируются на наличие jar- и zip-файлов), пути к архивам, каталог в архиве, который сканируется на наличие jar-файлов (например, dependencies.jar!/lib), или шаблоны подстановочных знаков (для поведение JVM по умолчанию). Пути к архивам могут указываться относительно loader.home или любого места в файловой системе с префиксом jar:file:.

person de-jcup    schedule 11.05.2021
comment
А если в моей базе log4j2.xml будут другие фрагменты конфигурации? Например, у меня есть определенные фрагменты только для логгеров, и я хотел бы переопределить только их. - person dash1e; 12.05.2021
comment
Читая stackoverflow.com/a/38408283/2590615 и указанные ссылки, я думаю, вам просто нужно добавить запятую из нескольких частей разделены. См. github.com/kamalcph/Log4j2Examples/blob/ - person de-jcup; 17.05.2021