Сервер в кармане, или просто о сложном!

главная - Статьи - Java



Как создать исполняемый jar-файл с помощью maven в Spring Boot-проекте

Дата обновления: 18.09.2023

Теги: java

С помощью maven, используя конфигурацию из pom.xml, можно создавать исполняемые файлы SpringBoot-проекта. Maven команда package создает исполняемый и неисполняемый jar-файлы в директории target проекта. Исполняемый jar-файл может запустить Spring проект на выполнение не используя maven или фреймворк Spring Boot.

 

Шаг 1: конфигурируем jar-упаковку

В файле pom.xml можно указать формат, в который будет упаковываться проект. По-умолчанию это jar. Устанавливается опцией:

<packaging>jar</packaging>

 

Шаг 2: указываем использование spring-boot-maven-plugin

В файле pom.xml в секции build -> plugins добавляем plugin:

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>

 

Шаг 3: имя jar-файла

Имя файла jar после сборки по-умолчанию будет сформировано из двух параметров pom.xml файла:

<artifactId>bSharing</artifactId>
<version>0.0.1-SNAPSHOT</version>

Итоговый jar-файл в данном случае будет bSharing-0.0.1-SNAPSHOT.jar, то есть формат имени такой: <artifactId>-<version> (через дефис).

 

Шаг 4: создание исполняемого jar-файла

Команда mvn package может создать исполняемый файл проекта. Сначала она компилирует исходный код, выполняет тесты, после чего создает неисполняемый jar-файл.

Включив все необходимые jar-файлы, maven создаст исполняемый файл jar на основе неисполняемого. При этом неисполняемый файл будет в директории target с именем исполняемого файла плюс с расширением ".original".

В командной строке перейдите в корневую папку проекта Spring Boot и выполните mvn package или mvn clean package.

Команда mvn package отличается от mvn clean package тем, что вторая команда сначала удаляет все файлы, созданные при прошлой сборке проекта.

> mvn clean package

[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------< ru.bozza:bSharing >--------------------------
[INFO] Building bSharing 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------

.....

[INFO] --- spring-boot-maven-plugin:3.0.6:repackage (repackage) @ bSharing ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.281 s
[INFO] Finished at: 2023-09-14T17:56:50+03:00
[INFO] ------------------------------------------------------------------------

В папке проекта target будут в том числе два файла:

  1. bSharing-0.0.1-SNAPSHOT.jar
  2. bSharing-0.0.1-SNAPSHOT.jar.original

Это и есть исполняемый и неисполняемый файлы jar.

 

Шаг 5: запуск jar-файла

Запустить jar-файл на исполнение можно из командной строки:

java -jar target/bSharing-0.0.1-SNAPSHOT.jar

2023-09-14T18:04:04.128+0300 INFO No active profile set, falling back to 1 default profile: "default"
2023-09-14T18:04:05.719+0300 INFO Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-09-14T18:04:05.868+0300 INFO Finished Spring Data repository scanning in 127 ms. Found 2 JPA repository interfaces.
2023-09-14T18:04:07.421+0300 INFO Tomcat initialized with port(s): 8443 (https)
...

 

Обратите внимание, у меня нет классического изображения Spring Boot в консоли. Я его отключил в файле "application.properties" параметром spring.main.banner-mode=off



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?