Запустите файл jar загрузки spring с профилями - ошибка не может найти файлы свойств

Я столкнулся с проблемой запуска файла jar загрузки spring с внешним профилем.

У меня есть проект весенних ботинок с джерси. Я поместил свойства и некоторый файл сертификата в разные каталоги (для разработки и производства разных серверов и т. д.). Приложению нужны эти свойства и файлы сертификатов.

Моя структура проекта выглядит так

MyProject
|_configurations
    |_local
    |_dev
|_web
    |__src
    |_target

Я могу запустить его локально на IntelliJ, установив локальный профиль в пути к классу. Я создаю файл jar из веб-каталога.

Когда я запускаю файл jar, он жалуется и не может найти файлы свойств и сертификатов.

это мои попытки

  1. Создайте новый файл jar, поместив необходимые свойства и сертификаты в каталог ресурсов в каталоге web\src\main.
  2. Помещение файла свойств в путь к классу при запуске файла jar как

java –jar –DApp.config.file="c:\MyProject\conf\local" MyProject.jar

Но ничего не работает, и я получаю ту же ошибку, жалуясь, что не удалось найти файлы свойств и сертификатов.

Любая помощь, как это можно решить. Есть ли другое лучшее решение для решения такой проблемы.


person Tayab Hussain    schedule 26.12.2018    source источник
comment
Как правило, вы должны поместить файлы конфигурации и сертификатов в папку .src/main/resources, потому что при создании jar все файлы в папке будут добавлены.   -  person Jonathan JOhx    schedule 27.12.2018
comment
@JonathanJohx, это может быть одним из решений, но я хочу добиться отделения конфигурации от файла jar.   -  person Tayab Hussain    schedule 07.01.2019


Ответы (1)


Наконец-то я понял, как мы можем работать с профилями.

  1. Если файлы конфигурации находятся внутри проекта. Загрузите профиль в путь к классу по имени профиля при запуске jar java -jar -Dspring.profiles.active=<Profile name> YourApp.jar

  2. следующее. Если конфигурации находятся за пределами jar-файла. Загрузите профиль и конфигурацию во время запуска jar-файла.

    java -jar -Dspring.profiles.active=<profile name> -Dloader.path=file:///C:/yourdirectorypath/MyApp/conf/environments/local MyApp.jar

Также обратите внимание, что порядок должен быть таким же, как в данной команде, т. Е. Профиль> Dloader.path> имя файла jar.

person Tayab Hussain    schedule 14.01.2019