2013-04-02 23 views
21

Qualcuno sa perché nelle attività di tipo Exec il comando e l'eseguibile si comportano in modo diverso in termini di ereditarietà delle vars ambiente?Nelle attività gradle di tipo Exec, perché comandoLine ed eseguibile si comportano diversamente?

Per esempio, io non posso correre questo compito, perché Gradle non riesce a trovare rubino dal mio ambiente:

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

Eppure questo funziona bene:

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

Ciò che è riga_comando, o come posso fagli prendere le variabili dalla shell da cui è stato eseguito? Perché l'eseguibile funziona?

risposta

33

Quando si utilizza il comando riga, è necessario dividere la stringa su spazi, altrimenti l'eseguibile diventa "rubino -v", anziché "rubino".

Quindi provare questo, invece:

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

vedere il codice here per vedere come il compito Exec gestisce questo.

+0

Suoni di destra, Saluti. Opaco. – matt

+0

non è "ruby -v" il comando che è disposto a eseguire? – Vincent

+0

Il collegamento è rotto –

Problemi correlati