1

使用 Google protobuf-gradle-plugin,它可以根据大量 proto 文件输入生成多个文件。运行任务时,只能看到所有已输出的文件,而不是先验地确定输出将是什么。

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

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

  2. 另一种是在输出目录中创建一个清单,该清单将跟踪所有创建的文件,然后它将知道要删除什么。

这里有什么建议?

4

1 回答 1

0

依赖内部 API 不是一个好主意。它不是偶然内部的,但可能会在没有任何通知的情况下进行更改,因此会破坏构建。

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

在创建清单时,我发现它更难实现和维护,而且更容易出错 - 你需要很好地了解 gradle 机制(这可能不像看起来那么难)以正确的方式实现它。我也找不到此解决方案的任何优点。你有什么?

因此,总结一下,更改输出文件夹。

于 2015-10-27T06:21:33.357 回答