我想在clean任务中添加一些额外的删除功能(适用于Java版本)。
所以我尝试将以下内容添加到我的gradle构建脚本中。
clean.doLast{
delete ('test.txt')
}
当我调整“干净”任务时,我的示例文件不会被删除...我也没有收到任何错误消息,表明发生了什么。
如果我尝试以下方法:
task deleteStuff(type: Delete) {
delete 'test.txt'
}
事情确实有效。
我可以不为任务添加(通过doLast)删除功能吗?这样做的正确方法是什么(没有攻击Ant任务)。
答案 0 :(得分:17)
在这两个代码段中,您不是在调用Project.delete()
而是调用Delete.delete()
。换句话说,您正在配置Delete
任务。执行Delete
任务后执行此操作(如第一个代码段中所示)为时已晚。
如果是Delete
任务,则没有充分理由使用delete
添加doLast
操作。你的第二个片段显然更可取。对于其他任务,doLast
方法将起作用,因为它们没有delete
方法。或者您可以使用project.delete()
消除歧义。
答案 1 :(得分:1)
如果原因是为了避免在准备阶段花费时间(为每个任务执行),可以使用doFirst设置Delete-task。 因此,在上面的示例中使用clean.doFirst而不是clean.doLast将起作用。
答案 2 :(得分:0)
这个解决方案对我有用:
task deleteTestFile(type:Delete) {
delete 'test.txt'
}
clean.dependsOn deleteTestFile