Ситуация - есть проект с Gradle надо создать jar со всеми зависимостями и запускать командой java -jar file. Еще называют такие сборки Fat Jar.

Используется Gradle 7.1

  • Подключаем библиотеку Shadow

В файле build.gradle добавляйте в список плагинов Gradle Shadow. В readme в гитхабе уточните нужную вам версию.

 id("com.github.johnrengelman.shadow") version "7.1.0"

Получится так:

plugins {
    id 'java'
    id("com.github.johnrengelman.shadow") version "7.1.0"
}
  • Добавляем конфигурацию запуска

Минимально, в значении Main-Class необходимо указать, какой класс содержит main метод для запуска:

jar {
    manifest {
        attributes(
                'Main-Class': 'ru.sendel.Main'
        )
    }
}
  • Собираем jar

Осталось выполнить команду:

gradle clean shadowJar

и в директории build/libs/ появится fat jar.

Profit! ✨