Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
10 Июл 2023
2 мин
385

Включение зависимостей в jar с помощью Maven

При разработке приложений на Java с использованием инструмента автоматизации сборки Maven, часто возникает потребность включить все зависимости в один

При разработке приложений на Java с использованием инструмента автоматизации сборки Maven, часто возникает потребность включить все зависимости в один исполняемый jar-файл. Это может быть полезно, когда, например, нужно сделать приложение самодостаточным и удобным для запуска.

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

Для достижения этой цели можно воспользоваться плагином Maven — maven-shade-plugin.

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.4</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Этот плагин пакует все зависимости в один jar-файл и обеспечивает возможность использовать несколько jar-файлов в одном.

Код выше добавляет плагин maven-shade-plugin в сборку проекта. Плагин активируется на фазе package и имеет цель shade, которая означает, что он должен упаковать все классы и ресурсы проекта, а также его зависимости в один jar-файл.

Таким образом, при сборке проекта с помощью команды mvn package, Maven сначала скомпилирует исходный код, затем упакует его вместе с зависимостями в один jar-файл.

В итоге получится исполняемый jar-файл, который содержит все необходимые зависимости, и который можно запустить на любой машине, где установлена Java.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий