2012-06-19 76 views
2

我想做的事情在我的Exec的任務將參數列表傳遞給Exec?

commandLine = [ 'my_executable_path\\' + executable.exe , 
       argument1, 
       argument2, 
       argument3 ] 

以下是有可能做這樣的事情呢?

//...dynamic creation of a List/Array/whatever 

    commandLine = [ 'my_executable_path\\' + executable.exe , 
        myArgumentsList ] 

回答

4

我很困惑爲什麼會有這麼多的問題。 DSL reference難以找到或理解?我們可以改進什麼來讓你自己回答這些問題?

無論如何,乾淨的解決方案是:

task exec(type: Exec) { 
    executable = "/path/to/executable" 
    args = myArgumentsList 
} 
+1

在文檔中一個具體的例子,使用複雜的參數會有所幫助。現在,我試圖執行這個命令'repo forall -cp'echo \ $ REPO_PROJECT'',並且文檔沒有給出任何有關如何正確分割參數的見解。我嘗試了'[「forall -cp'echo'$ REPO_PROJECT'」]'和'[「forall」,「-cp'echo'$ REPO_PROJECT'」]'和'[「forall」,「-cp」, 「'echo \ $ REPO_PROJECT'」]'和'[「forall」,「-p」,「-c」,「'echo \ $ REPO_PROJECT'」]'沒有任何工作。知道哪個版本是「正確的」會使調試更容易。 – gMale

+0

哪個版本是正確的完全取決於可執行文件以及它期望傳遞參數的方式。 –

+0

這仍然失敗,我嘗試使用捲曲。直接在命令行上失敗,但通過gradle失敗:[錯誤] [system.err] curl:(1)協議'http不支持或在libcurl中被禁用 – slott