从Gradle任务跟踪(和删除)输出文件

时间:2015-10-27 00:44:58

标签: gradle gradle-plugin

使用Google protobuf-gradle-plugin,它可以根据多个原型文件输入生成多个文件。运行任务时,只能查看已输出的所有文件,而不是先确定输出的内容。

当需要清理项目时,挑战就来了。 Gradle似乎会跟踪可从AbstractTask.getOutputs().getPreviousFiles()访问的输出文件。这就是Gradle内部,所以我怀疑你可以依靠它。如果要删除所有输出文件,最好的方法是什么?

  1. 一种可能性是将输出文件夹限制在构建目录中,这样如果删除它,所有生成的文件都将消失。

  2. 另一种方法是在输出目录中创建一个清单,用于跟踪所有已创建的文件,然后它将知道要删除的内容。

  3. 这里有什么建议?

1 个答案:

答案 0 :(得分:0)

取决于内部API并不是一个好主意。它不是偶然的内部,但可能会在没有任何通知的情况下进行更改,从而破坏构建。

不易出错且更容易实现的是将输出重定向到project.buildDir。在这种情况下,一切都很简单,此文件夹将在clean调用时删除,文件将被删除。

当谈到创建清单时,我发现它更难以实现和维护以及更容易出错 - 你需要很好地了解gradle机制(可能不像看起来那么困难)来实现它正确的方法。我也找不到这个解决方案的任何专业人士。你有吗?

所以,总结一下,更改输出文件夹。