我已经定义了一个类型为Exec的简单Gradle任务,并且我试图在从另一个任务调用该任务时将参数传递给该任务。
如何做到这一点?
答案 0 :(得分:1)
无法从其他任务调用任务。相反,声明两个任务并使一个依赖于另一个。 (不支持调用内部task.execute()
方法,并且其行为未定义。)对于第二项任务不可行的情况,有一个project.exec {}
方法,与任务具有完全相同的API。
答案 1 :(得分:1)
正如已经指出的那样,我最初的方法是有缺陷的,而不是“gradle方式”。因此,在仔细重新思考问题后,我将所有内容颠倒过来,现在我“只是”遍历我的参数,然后执行每个参数的代码。
这里的案例是一个语言列表,每个语言都将用作命令行中的参数。
task multiCommands << {
def lang = languages.split()
lang.each { locale ->
def output = exec {
commandLine "my command that takes an argument", locale
}
}
}