【问题标题】:Why in Gradle can't declare property as output?为什么在 Gradle 中不能将属性声明为输出?
【发布时间】:2014-08-27 15:49:04
【问题描述】:

如果我的任务更改了某些属性并且在执行两次时增量构建无法完成。并且每次都必须再次执行此任务。我可以使用 upToDateWhen() 方法来检查属性吗?

属性不能声明为任务输出有什么目的吗?

图片来自: (Muschko, Benjamin。“挂钩到构建生命周期。”Gradle in Action。N.p.: n.p., 2014)

【问题讨论】:

  • upToDateWhen 绝对专用于检查是否应该执行任务。不太明白你的意思,但如果它适合你的需要,请随意使用它。
  • 我想问一下Gradleware为什么做TaskOutput接口没有属性方法?
  • 然后询问 gradle 团队。我想它太短暂了,无法注册为任务输出。
  • 仅供参考:如果您使用 Manning Publications 任何书籍中受版权保护的材料,他们可能会不喜欢它。
  • 对不起。我将引用添加到我拍摄照片的书中。

标签: input properties gradle output task


【解决方案1】:

任务的输入和输出声明用于确定自上次构建以来任务是否“最新”,因此可以在当前构建中安全地跳过。没有任何输出声明意味着任务在构建开始时总是过时的。由于属性不会跨构建持久化,因此输出属性的任务将始终过时并需要运行,这相当于不将属性指定为任务的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多