TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1574 3.53K
Что такое Fat JAR в Java?

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
  • 👍 6
  • 🔥 4
  • ❤ 3
More from @java_iibrary
  1. Oct 1, 2026Spring Boot 4: приближение срока истечения SSL-сертификатов больше не меняет статус health…
  2. Sep 30, 2026Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпил…
  3. Sep 30, 2026Docker прост, пока всё работает. Но что делать, если контейнер постоянно перезапускается,…
  4. Sep 29, 2026Эволюция языков программирования 1940-е → Машинный код ⬇️ 1950-е → Ассемблер ⬇️ 1960-е → F…
  5. Sep 29, 2026Большинство Java-разработчиков используют эти термины каждый день. Удивительно, но многие…
  6. Sep 28, 2026💡 Java: не создавайте ресурсоёмкие объекты, пока они действительно не понадобятся. ✅ Иниц…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →