Wie zum ausführen einer main-Klasse in einem jar von gradle mit der "java" - Befehl
Ich habe diese Dateien unter der <project_root>
Ordner:
./build.gradle
./build/libs/vh-1.0-SNAPSHOT.jar
./libs/groovy-all-2.1.7.jar
./src/main/groovy/vh/Main.groovy
In der build.gradle
Datei, ich habe diese Aufgabe:
task vh( type:Exec ) {
commandLine 'java -cp libs/groovy-all-2.1.7.jar:build/libs/' +
project.name + '-' + version + '.jar vh.Main'
}
Den Main.groovy
Datei ist einfach:
package vh
class Main {
static void main( String[] args ) {
println 'Hello, World!'
}
}
Nach dem einstecken in die string-Werte, die Befehlszeile:
java -cp libs/groovy-all-2.1.7.jar:build/libs/vh-1.0-SNAPSHOT.jar vh.Main
Wenn ich den Befehl ausführen direkt von der shell, bekomme ich die korrekte Ausgabe. Allerdings, wenn ich gradle vh
, wird es scheitern. So, wie mache ich das? Ich danke Ihnen sehr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Exec.commandLine
erwartet eine Liste Werte: einen Wert für die ausführbare Datei, und ein anderer Wert für jedes argument. Zum ausführen von Java-code, es ist besser, verwenden Sie dieJavaExec
Aufgabe:In der Regel, die Sie nicht haben, um fest die Klasse Pfad wie die. Zum Beispiel, wenn Sie mit der
groovy
plugin, undgroovy-all
ist bereits deklariert alscompile
Abhängigkeit (und zu wissen, dass das zweite Glas aus dermain
Quellen), würden Sie lieber tun:Erfahren Sie mehr über die
Exec
undJavaExec
task-Typen, finden Sie in der Gradle Build-Referenzhandbuch.