【问题标题】:Run Gradle task on the first build of the day only仅在当天的第一个构建中运行 Gradle 任务
【发布时间】:2016-09-27 17:14:07
【问题描述】:

我的任务是获取一些每天更新但需要几秒钟的数据。为了节省构建时间,我只想每天运行一次该任务。我已经阅读了 gradle 文档的最新部分,但我仍然不清楚如何执行此操作。

【问题讨论】:

    标签: gradle build build.gradle


    【解决方案1】:

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

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

    https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:task_input_output_runtime_api 了解有关其使用方式的更多信息。请注意,这不是 24 小时的事情,它曾经是日历日的事情。

    【讨论】:

    • 这很好。我可以麻烦您更深入地解释一下这是如何工作的吗?
    • 这似乎不起作用,你能详细说明一下应该发生的事情吗?
    • @ZachSperske 抱歉,我忘记了这一点,但它应该采用属性“todaysDate”,我们将今天的日期(年月日)作为值。每次运行该任务时,gradle 都会缓存该值。如果下次调用该任务时给定的值相同,则该输入被认为是最新的。在下一个日期,它将获得与缓存日期不同的日期,从而使任务 not UP-TO-DATE。顺便说一句,发生了什么?第二天不运行?
    • 每次构建时任务都会运行,似乎从来没有被认为是最新的。
    • 哦!还需要至少定义一个输出。我会更新答案。
    猜你喜欢
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多