Spring загрузите полностью исполняемый JAR и задайте свойства -D

Плагины Spring Boot Maven и Gradle теперь могут генерировать полные исполняемые архивы для операционных систем Linux/Unix. Охват полностью исполняемого JAR так же просто, как и ввод:

$ ./myapp.jar

Мой вопрос заключается в том, как установить свойства -D, например

-Dspring.profiles.active=test

Кроме того, если сервер не устанавливает jdk, может ли этот полностью исполняемый jar все еще работать?

Ответ 1

Существует два способа настройки таких свойств:

1

Указав их в отдельном файле конфигурации. Spring Boot будет искать файл с именем JARfilename.conf, который должен храниться в той же папке, что и файл JAR. Там вы можете добавить переменную окружения JAVA_OPTS:

JAVA_OPTS="-Dpropertykey=propvalue"

2:

Или вы можете просто указать значение для переменной среды в оболочке перед выполнением приложения:

JAVA_OPTS="-Dpropertykey=propvalue" ./myapp.jar

Посмотрите документацию на полный список доступных переменных: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#deployment-service

Что касается вашего второго вопроса: для выполнения JAR вам не нужен JDK, JRE достаточно (но вам нужно хотя бы то, что, если у вас нет java, установленного на сервере, приложение выиграло ' t run).

Ответ 2

По умолчанию SpringApplication преобразует любые аргументы параметров командной строки (начиная с '-, например, --server.port = 9000) в свойство и добавляет его в среду Spring. Как упоминалось выше, свойства командной строки всегда имеют приоритет над другими источниками свойств.

например.

$ java -jar myapp.jar --spring.application.json='{"foo":"bar"}'

см. http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/