2012-03-13 163 views
14

我想为clean任务追加一些额外的删除功能(对于Java版本)。Gradle - 删除不起作用

所以我尝试添加以下内容到我的gradle构建脚本中。

clean.doLast{ 
    delete ('test.txt') 
} 

当我调整“干净”的任务我的示例文件不会被删除...我也没有得到任何错误消息指出发生了什么。

如果我尝试以下方法:

task deleteStuff(type: Delete) { 
    delete 'test.txt' 
} 

事情做的工作。

我可以不添加(通过doLast)删除功能的任务?这样做的正确方法是什么(没有黑客攻击Ant任务)。

回答

15

在这两个代码片段中,您不会调用Project.delete(),而是调用Delete.delete()。换句话说,您正在配置Delete任务。在执行Delete任务后执行此操作(如第一个代码段所示)为时已晚。

Delete任务的情况下,没有理由在doLast中添加delete操作。你的第二个片段显然更可取。对于其他任务,doLast方法将起作用,因为它们没有delete方法。或者你可以用project.delete()消除歧义。

+0

彼得,感谢提到project.delete消除歧义。这清除了我很多的困惑。 – 2012-03-19 01:45:58

1

如果原因是为了避免在准备阶段花费时间(这是为每个任务执行的),doFirst可以用来设置删除任务。 因此,在上面的例子中使用clean.doFirst而不是clean.doLast将会起作用。