gradle构建如何知道哪些模块已更改?

时间:2017-09-17 11:40:38

标签: gradle

我想编写一个bash脚本,它只抓取我项目中已更改的模块(在构建之后)的输出jar,以便我可以将它们复制到服务器。我不想每次都复制每个模块jar,就像你做一个完全干净的构建一样。它是使用git的gradle项目。我知道gradle只能基于代码已经更新的模块进行增量构建,但是有没有办法可以调用这个插件(假设它是一个插件)?我在线搜索了一些但无法找到任何信息。

1 个答案:

答案 0 :(得分:1)

Gradle具有与任务相关联的inputsoutputs概念。 Gradle在第一次运行任务时以及每次后续执行时获取任务的输入和输出的快照。这些快照包含每个文件内容的哈希值。这使得gradle能够检查后续执行,输入和/或输出是否已更改并确定是否需要再次执行任务。

此功能也可用于自定义gradle任务(您自己编写的任务),并且是您可以实现所需行为的一种方式。如果需要,您可以从bash脚本调用相应的任务。更多详情可在这找到: Gradle User Guide, Chapter 14

否则,我想你的bash脚本可能需要比较相关文件的修改时间戳,或者计算和比较哈希本身。