2012-06-19 77 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