我有gradle任务:
task immportMyData(type: Exec) {
def dumnp= ""
new File("${System.env.MY_HOME}/export").eachDir() { dir ->
dumpName = dir.getName()
}
workingDir "${System.env.MY_HOME}/../test"
standardOutput = new ByteArrayOutputStream()
ext.output = {
return standardOutput.toString()
}
}
...
据我所知,它的任务配置,因为它每次执行。
那么,有没有什么方法可以将代码从爆燃步骤转移到任务主体(执行步骤)? 有些人认为是这样。
task immportMyData(type: Exec) << {
//code from configuration
}
another worlds
task immportMyData(type: Exec) **<<** {
def dumnp= ""
new File("${System.env.MY_HOME}/export").eachDir() { dir ->
dumpName = dir.getName()
}
workingDir "${System.env.MY_HOME}/../test"
standardOutput = new ByteArrayOutputStream()
ext.output = {
return standardOutput.toString()
}
}
我查了gradle docs,但没有运气
答案 0 :(得分:0)
我想你可能误解了Exec
任务的作用。 Exec
用于运行外部命令,即另一个进程。因此,它需要您指定其commandLine
属性,以便它在执行时执行任何操作。有关详细信息,请参阅here。
看起来你实际上要做的是“在任务执行期间运行一些代码”,这可以使用常规(非Exec
)任务来实现。像这样:
task importMyData {
//Code to configure task
doLast {
//Code to run at execution time, maybe this?:
new File("${System.env.MY_HOME}/export").eachDir() { dir ->
ext.dump = dir.getName()
}
}
}
希望这有帮助。