Есть некоторый проект на жаве с таким вот build.gradle:
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '2.0.1'
}
mainClassName = "Main"
group 'org.q'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'net.dv8tion', name: 'JDA', version: '4.1.1_121'
compile group: 'org.mongodb', name: 'mongodb-driver-sync', version: '3.12.2'
compile group: 'org.atteo.classindex', name: 'classindex', version: '3.4'
annotationProcessor group: 'org.atteo.classindex', name: 'classindex', version: '3.4'
}
jar {
manifest {
attributes 'Main-Class': 'discordbot.Main'
}
}
compileJava.options.encoding = 'UTF-8'
При попытке собрать проект в jar вызовом "gradle jar" искомый файл успешно создаётся, но при попытке его выполнения(java -jar "path/file.jar") вылезает следующее:
Exception in thread "main" java.lang.NoClassDefFoundError: net/dv8tion/jda/api/JDABuilder
at discordbot.Main.main(Main.java:17)
Caused by: java.lang.ClassNotFoundException: net.dv8tion.jda.api.JDABuilder
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
Логично предположить, что файл собирается без зависимостей, отсюда вопрос: как настроить gradle, чтобы он либо запихивал все зависимые либы в jar, либо клал их рядом в виде jar'ников и прописывал пути к классам?