2013-04-02 25 views
21

Exec komut satırı ve yürütülebilir dosyalarındaki görevlerin neden devralma ortamı varsında farklı davrandığını bilen var mı?Exec türünün ana görevlerinde, commandLine ve çalıştırılabilir neden farklı davranıyor?

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

Ancak bu iyi çalışır:

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

ne olabilir için CommandLine olduğu, ya da ne kadar Gradle benim ortamdan yakut bulamazsa çünkü

Örneğin, ben Bu Göreve koşamam Çalıştığı kabuktan değişkenleri almak için olsun? Neden yürütülebilir sadece çalışır?

cevap

33

commandLine kullanıldığında, dizgiyi boşluklara ayırmanız gerekir, aksi halde yürütülebilir dosya 'ruby' yerine 'ruby -v' olur.

Bunun yerine bu deneyin:

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

Exec görev bu nasıl işleyeceğini görmek için kod here bakınız.

+0

Sağdaki sesler, Şerefe. Mat. – matt

+0

, yürütmeye istekli olduğu komut olan 'ruby -v' değil mi? – Vincent

+0

Bağlantı bozuk –

İlgili konular