仅在当天第一次构建时运行Gradle任务

仅在当天第一次构建时运行Gradle任务,gradle,build,build.gradle,Gradle,Build,Build.gradle,我有一个任务,获取一些每天更新但需要几秒钟的数据。为了节省构建时间,我希望每天只运行一次该任务。我已经阅读了gradle文档的最新部分,但我仍然不清楚如何做到这一点。将输入配置为具有日期属性 task onceADay { inputs.property("todaysDate", new Date().clearTime() ) outputs.upToDateWhen { true } } 有关如何使用它的更多信息。请注意,这不是一个24小时的事件,而是一个日历日事件。将输入配

我有一个任务,获取一些每天更新但需要几秒钟的数据。为了节省构建时间,我希望每天只运行一次该任务。我已经阅读了gradle文档的最新部分,但我仍然不清楚如何做到这一点。

将输入配置为具有日期属性

task onceADay {
   inputs.property("todaysDate", new Date().clearTime() )
   outputs.upToDateWhen { true }
}

有关如何使用它的更多信息。请注意,这不是一个24小时的事件,而是一个日历日事件。

将输入配置为具有日期属性

task onceADay {
   inputs.property("todaysDate", new Date().clearTime() )
   outputs.upToDateWhen { true }
}

有关如何使用它的更多信息。请注意,这不是一个24小时的事情,而是一个日历日的事情。

这很好。我能麻烦你更深入地解释一下这是如何工作的吗?这似乎不起作用,你能详细说明一下应该发生什么吗?@ZachSperske抱歉,我忘了这一点,但它应该包含一个属性“todaysDate”,我们给它今天的日期(日-月-年)作为值。每次运行该任务时,gradle都会缓存该值。如果下一次调用该任务时给定了相同的值,则认为该输入是最新的。在下一个日期,它将获得与缓存的日期不同的日期,从而使任务不是最新的。顺便说一句,发生了什么事?它不是在第二天运行吗?任务在我每次构建时都会运行,似乎从来没有被认为是最新的。哦!还需要至少定义一个输出。我会更新答案,很好。我能麻烦你更深入地解释一下这是如何工作的吗?这似乎不起作用,你能详细说明一下应该发生什么吗?@ZachSperske抱歉,我忘了这一点,但它应该包含一个属性“todaysDate”,我们给它今天的日期(日-月-年)作为值。每次运行该任务时,gradle都会缓存该值。如果下一次调用该任务时给定了相同的值,则认为该输入是最新的。在下一个日期,它将获得与缓存的日期不同的日期,从而使任务不是最新的。顺便说一句,发生了什么事?它不是在第二天运行吗?任务在我每次构建时都会运行,似乎从来没有被认为是最新的。哦!还需要至少定义一个输出。我会更新答案。