2017-08-06 4 views
0

Ich schaue diese Dokumentation hier an: https://docs.gradle.org/3.4.1/dsl/org.gradle.api.tasks.Exec.html, die ein Beispiel gibt, wie man Tomcat ein-/ausschalten kann.Gradle Exec Aufgabe zum Stoppen von Tomcat

Allerdings ist nicht genau erklärt, was genau Parameter CommandLine erwartet.

Also, der folgende Code ist fehlgeschlagen. Könnten Sie bitte irgendwelche Gedanken teilen?

task stopTomcat(type:Exec) { 
    println "$System.env.TOMCAT" 

    workingDir "${System.env.TOMCAT}" + '/bin/' 

    //on windows: 
    commandLine './catalina.sh stop' 

    //on linux 
    //commandLine './stop.sh' 

    //store the output instead of printing to the console: 
    standardOutput = new ByteArrayOutputStream() 

    //extension method stopTomcat.output() can be used to obtain the output: 
    ext.output = { 
     return standardOutput.toString() 
    } 
} 

Ich habe wie oben meine Aufgabe konfiguriert, aber es funktioniert nicht, wenn ich die Aufgabe auszuführen. net.rubygrapefruit.platform.NativeException:

von Verursacht konnte nicht start './catalina zu stoppen'

Antwort

1

Sind Sie Windows oder Unix verwenden?

Im Allgemeinen müssen Sie den entsprechenden Befehl, der für Sie arbeitet, an einem Befehlszeilenterminal auf Ihrer Plattform identifizieren. Verwenden Sie dann den entsprechenden "Plattformstil" in Ihrer Task "Gradle".

Zum Beispiel habe ich Tomcat 7.x. Um unter Unix mit einem Terminal in $TOMCAT_HOME/bin herunterzufahren, würde ich ./shutdown.sh verwenden. In diesem Fall würde die Aufgabe nur verwenden:

commandLine './shutdown.sh' 

Unter Windows würde ich shutdown.bat verwenden. In diesem Fall würde die Aufgabe verwenden:

commandLine 'cmd', '/c', 'shutdown.bat' 

Beachten Sie, dass es cmd wird mit der BAT-Datei aufzurufen. Aufgrund der Funktionsweise von Windows würde die Befehlszeile dieses Formular für jede BAT-Datei enthalten.

Verwandte Themen