После некоторых экспериментов я понял, что в сгенерированном JAR было много дублированных файлов, в результате чего среда выполнения не нашла требуемый .class.
Он был запущен после включения Spark, потому что это зависимость, вызывающая снежный ком других зависимостей, имеющих те же пути к файлам в папке META-INF
exclude 'META-INF/*'
Эта строка сделала трюк, чтобы избежать дубликатов, но все еще будет иметь папку META-INF в конечном JAR