在gradle中,如何设置目录(递归)作为任务的输出? (要进行检查和散列以进行UP TO DATE检查)

时间:2014-08-08 14:16:31

标签: android gradle

15.9.2部分的http://www.gradle.org/docs/current/userguide/more_about_tasks.html中。它是如何工作的?'gradle docs说:

“在第一次执行任务之前,Gradle会获取输入的快照。此快照包含输入文件集和每个文件内容的哈希值。然后Gradle执行任务。任务成功完成,Gradle获取输出的快照。这个快照包含输出文件集和每个文件内容的散列.Gradle将下一次执行任务时保留两个快照。“

如何告诉gradle将目录的内容(递归!)视为输出? 如果我指定为输出的目录中的任何内容发生更改,我希望该任务再次运行。

  

文件丢失---->过时了!

     

目录缺失---->过时了!

     

新文件位于之前不存在的目录中---->过时了!

     

与早期状态的任何差异都会导致任务不能处于最新状态。

如何让gradle表现得像这样?

1 个答案:

答案 0 :(得分:0)

如果任务是作为类(首选)实现并且您控制实现,请使用File注释表示目录路径的@OutputDirectory属性。否则,使用outputs.dir("path/to/dir")配置任务。

请注意,Gradle的内置任务类已经带有相应的注释。