Fat JAR (он же Uber JAR) — это единый исполняемый .jar-файл, который содержит как классы вашего приложения, так и все его зависимости.
Такое приложение полностью самодостаточно — не нужно отдельно подключать внешние библиотеки во время выполнения.
Просто запускается командой:
java -jar myapp-fat.jar
Зачем использовать Fat JAR?
🔹Портируемость — удобно распространять и развёртывать
🔹Простота — не нужно возиться с classpath и отлавливать ClassNotFoundException
🔹Отлично подходит для микросервисов и Docker — один артефакт, одна команда запуска
Как собрать Fat JAR
👉 С помощью Maven (maven-assembly-plugin)
Добавьте в pom.xml:
<!-- пример конфигурации (на 2 фото) -->
Соберите:
mvn clean package
Готовый JAR будет лежать в:
target/myapp-jar-with-dependencies.jar
👉 С помощью Maven (maven-shade-plugin)
Если нужен контроль над пересборкой пакетов и теневыми зависимостями — используйте Shade:
<!-- пример конфигурации на 3 фото -->
Сборка аналогично — итоговый файл будет в:
target/myapp-shaded.jar
👉 С помощью Gradle
В
build.gradle добавьте:// пример конфигурации на 4 фото
Запуск сборки:
./gradlew fatJar
Пример: Минимальное Java-приложение
// 5 фото
С учётом вышеописанных конфигураций Maven или Gradle, все зависимости будут включены в .jar — достаточно java -jar.
Некоторые команды не используют fat JAR для крупных приложений, чтобы:
> Ускорить сборку
> Снизить использование диска
> Упростить обновление отдельных зависимостей без пересборки всего артефакта
Fat JAR упаковывает всё необходимое для простого и портируемого деплоя Java-приложений
Собирается через Maven (плагины assembly или shade) или Gradle
Альтернативы: thin JAR, WAR/EAR, Spring Boot plugin, контейнеры
Выбирайте fat JAR, если важны простота и переносимость, особенно в микросервисной архитектуре и для деплоя в облаке.
👉 Java Portal





