Warum verhalten sich commandLine und executable in Gradle-Tasks vom Typ Exec unterschiedlich?

Weiß jemand, warum sich Tasks vom Typ Exec Commandline und Executable hinsichtlich der Vererbung von Umgebungsvariablen unterschiedlich verhalten?

Ich kann diesen Task beispielsweise nicht ausführen, weil Gradle keinen Rubin in meiner Umgebung findet:

task checkRubyVersionCommandLine(type: Exec) {
       commandLine 'ruby -v'
}

Dies funktioniert jedoch gut:

task checkRubyVersionExecute(type: Exec) {
    executable = 'ruby' 
    args = ['-v']
}

Wofür ist commandLine oder wie kann ich es veranlassen, die Variablen aus der Shell zu übernehmen, aus der es ausgeführt wird? Warum funktioniert die ausführbare Datei nur?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage