En las tareas de Gradle de tipo Exec, ¿por qué la línea de comandos y el ejecutable se comportan de manera diferente?

¿Alguien sabe por qué en tareas de tipo Exec línea de comandos y ejecutables se comportan de manera diferente en términos de heredar las variables del entorno?

Por ejemplo, no puedo ejecutar esta tarea porque Gradle no encuentra Ruby en mi entorno:

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

Sin embargo, esto funciona bien:

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

¿Para qué sirve CommandLine o cómo puedo hacer que recoja las variables desde el shell desde el que se ejecuta? ¿Por qué solo funciona el ejecutable?

Respuestas a la pregunta(1)

Su respuesta a la pregunta