Установка приложений Spring Boot: полностью исполняемый jar в Unix

Помимо запуска приложений Spring Boot с использованием java -jar, также можно создавать полностью исполняемые приложения для систем Unix. Полностью исполняемый jar может быть выполнен как любой другой исполняемый двоичный файл или он может быть зарегистрирован в init.d или systemd. Это упрощает установку и управление приложениями Spring Boot в обычных производственных средах.

Полностью исполняемые файлы jar работают путем встраивания дополнительного скрипта в начало файла. В настоящее время некоторые инструменты не принимают этот формат, поэтому вы не всегда сможете использовать эту технику. Например, jar -xf может молча не извлечь jar или war, которые были сделаны полностью исполняемыми. Рекомендуется сделать jar или war полностью исполняемым только в том случае, если вы намерены выполнять его напрямую, а не запускать его с помощью java -jar или развертывать его в контейнере сервлета.

Файл jar в формате zip64 нельзя сделать полностью исполняемым. Попытка сделать это приведет к тому, что файл jar будет поврежден при непосредственном выполнении или с помощью java -jar. Файл jar стандартного формата, который содержит один или несколько вложенных jar-файлов формата zip64, может быть полностью исполняемым.

Чтобы создать "полностью исполняемый" jar с Maven, используйте следующую конфигурацию плагина:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <executable>true</executable>
    </configuration>
</plugin>

В следующем примере показана эквивалентная конфигурация Gradle:

bootJar {
    launchScript()
}

Затем вы можете запустить ваше приложение, набрав ./my-application.jar (где my-application - это имя вашего артефакта). Каталог, содержащий jar, используется в качестве рабочего каталога вашего приложения.

Поддерживаемые операционные системы

Сценарий по умолчанию поддерживает большинство дистрибутивов Linux и протестирован в CentOS и Ubuntu. Другие платформы, такие как OS X и FreeBSD, требуют использования собственного встроенного LaunchScript.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки