Добавьте в свой build.gradle следующее:
jar {
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Это объединит содержимое всех зависимостей в выходной файл.
См. Также http://www.baeldung.com/gradle-fat-jar.
В другом подходе можно скопировать jar-файлы зависимостей в выходной jar-файл (jars in jar), но для этого также необходимо написать собственный загрузчик классов.
UPDATE после редактирования вопроса:
OP хочет использовать второй подход, который используется следующим образом:
plugins {
id "com.github.onslip.gradle-one-jar" version "1.0.5"
}
task awesomeFunJar(type: OneJar) {
mainClass = 'com.github.rholder.awesome.MyAwesomeMain'
}
Это будет включать все зависимые jar-файлы в каталог lib в выходном jar-файле.Он также установит пользовательский загрузчик классов, который загружает jar-файлы из каталога lib в jar-файле.Это то, что стандартный загрузчик классов не делает, независимо от того, как вы настраиваете путь к классу.
См. Также https://github.com/Onslip/gradle-one-jar/