Ich bin verrückt nach diesem Fehler, den ich bekomme, wenn ich eine JAR-Datei aus Gradle ausführe. Der Fehler lautet "kein Hauptmanifestattribut in RxJavaDemo.jar". Ich habe versucht, die Manifest-Eigenschaft zu manipulieren, aber ich glaube, ich habe vergessen, die Abhängigkeiten oder etwas hinzuzufügen. Was genau mache ich falsch?
apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'demo.MainDashboard'
dependencies {
compile files ("H:/Processes/Development/libraries/hikari-cp/HikariCP-2.4.1.jar")
compile files ("H:/Processes/Development/libraries/controls-fx/controlsfx.jar")
compile files ("H:/Processes/Development/libraries/database_connections/sqlite-jdbc-3.8.6.jar")
compile files ("H:/Processes/Development/libraries/guava/guava-18.0.jar")
compile files ("H:/Processes/Development/libraries/rxjava/rxjava-1.0.12.jar")
compile files ("H:/Processes/Development/libraries/rxjava-extras/rxjava-extras-0.5.15.jar")
compile files ("H:/Processes/Development/libraries/rxjavafx/RxJavaFX-1.0.0-RC1-SNAPSHOT.jar")
compile files ("H:/Processes/Development/libraries/rxjavaguava/rxjava-guava-1.0.3.jar")
compile files ("H:/Processes/Development/libraries/rxjava-jdbc/rxjava-jdbc-0.6.3.jar")
compile files ("H:/Processes/Development/libraries/slf4j/slf4j-api-1.7.12.jar")
compile files ("H:/Processes/Development/libraries/tom-commons/tom-commons.jar")
}
sourceSets {
main.java.srcDir "src/main/java"
main.resources.srcDir "src/main/resources"
}
jar {
manifest {
attributes(
"Class-Path": configurations.compile.collect { it.getName() }.join(' '))
}
from configurations.compile.collect { entry -> zipTree(entry) }
}
collect {}
Teil entfernen , damit er für mich funktioniert. Ihr Code setzt voraus, dass sich alle Abhängigkeiten im selben Ordner wie Ihre Hauptklasse befinden.FWIW - Ich habe die folgende JAR-Aufgabe verwendet, um alle meine Kompilierungsabhängigkeiten in der JAR-Datei zusammenzufassen, und die obige Empfehlung verwendet, um den Klassenpfad richtig festzulegen
quelle