The best way to build a fat runnable jar is to avoid it as hell wherever you can. Instead build a proper distribution, for example using the Gradle application plugin.