没有输出时的“最新”Gradle 任务状态

2023-12-23

当任务不产生任何输出时,如何正确地将 Gradle 任务标记为“最新”?如果上次运行成功并且输入自那时以来没有更改,则任务应保持“最新”。 Gradle 指南在部分之前指出15.9.2 http://gradle.org/docs/current/userguide/more_about_tasks.html#N10FD3, 下列:

"A task with no defined outputs will never be considered up-to-date."

在这种情况下如何将任务标记为最新?看来 Gradle 需要知道上次成功运行的时间,然后将其与输入的上次修改时间进行比较。作为解决方法,脚本可以创建/触摸一个空文件以将任务标记为完成?还有其他建议的解决方法吗?


只是想一下不同的场景......

  • 没有任何输入或输出的任务。这些一直在运行。这可能只是包装现有的“做某事”可执行文件。

  • 有输入的任务and输出。当输入或输出发生变化时它们就会运行。这可能是一个编译器。

  • 仅具有输出的任务。这些仅在输出已更改/不存在时运行。这可能是下载一些东西的东西。 (我认为这些在现实中很少见,我会将下载的 URL 算作输入。)

  • 有输入但无输出的任务。我在实践中没有遇到过这些。

正如您所说,您可以使用空的输出文件来欺骗最新检查。内置的 GradleTest http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html任务与您所描述的最相似,并且它有一个“报告”作为其输出。我想你可能也会有类似的东西。它可以像捕获任务的 stdout/stderr 并将其放入文件一样简单。当一切都过去时,这不太有用,但当事情失败时,它会很有用。

当然,任何这些都可以通过定制来补充upToDateWhen一点代码。例如,您有一个启动网络服务器的任务,并且当网络服务器已经运行时它是“最新的”。我认为这与您在这里所描述的不太相符。

首先,我会尝试:

outputs.files file("${buildDir}/reports/${name}.out")

我认为无论是否在文件中实际放入某些内容,这都可以工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有输出时的“最新”Gradle 任务状态 的相关文章

随机推荐

  • Swift NSTimer 在后台运行

    我遇到了很多关于如何在堆栈或其他地方在后台处理 NSTimer 的问题 我已经尝试了所有实际上有意义的选项之一 当应用程序进入后台时停止计时器 NSNotificationCenter defaultCenter addObserver s
  • C++11:如何获取指针或迭代器指向的类型?

    更具体地说 假设我正在写template
  • C++ 读取字符并创建数组

    如何从文件中读取一行字符 首先 程序从文件中读取一个整数 该数字表示下一步要读入多少个字符 下一步读取字符并将它们存储在数组中 那么我如何创建 char 变量 以便我可以正确读取 Michael 的字符并将它们显示在数组中 file txt
  • 将 BuildKit 与 Docker 结合使用时,如何查看 RUN 命令的输出?

    构建 Docker 镜像时DOCKER BUILDKIT 1 有一个非常酷的进度指示器 但没有命令输出 如何查看命令输出来调试我的构建 你有没有尝试过 progress plain Example FROM alpine RUN ps au
  • 将 Android 应用缩放到不同的屏幕尺寸

    所以我正在努力将我的应用程序扩展到不同的屏幕尺寸 目前它针对 10 1 英寸屏幕进行了优化 但我正在努力让它在具有 7 英寸屏幕的 kindle fire 上运行 我只使用相对布局 到目前为止 我的背景可以完美缩放 但背景顶部的图像按钮无法
  • MySQLi 和 PDO 哪种方法更安全[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Windows 2012 R2 上运行时,如何让 MSI 返回正确的 VersionNT 值?

    当我在 Windows 2012 R2 计算机 RTM 内部版本 9600 上运行 MSI 时 VersionNT 属性设置为 602 而不是 603 如果 602 实际上是正确的操作系统版本 那么如何在安装时以编程方式区分 Windows
  • 如何让 TeamCity 使用 MSTest 运行测试?

    我正在尝试弄清楚如何让 TeamCity 运行我的 MSTest 我使用以下参数设置了构建步骤 MSTest exe 的路径 system MSTest 10 0 列出汇编文件 项目 Metadude Tests bin Debug Met
  • C++11 Lambda 表达式作为回调函数

    是否有任何 C GUI 工具包支持将回调函数定义为 C 11 lambda 表达式 我相信这是使用 C 至少与 C 相比 编写基于 GUI 的程序的独特优点 对于采用 lambda 表达式作为参数的函数 我应该使用什么类型签名以及它们如何支
  • 角度绑定到带有空格的方括号表示法属性

    是否可以使用访问属性的方括号表示法绑定到角度属性 例如 使用伪代码
  • MongoDB 索引:多个单字段与单个复合索引?

    我有一个地理空间 时间数据的集合 其中包含一些附加属性 我将在地图上显示它们 目前 该集合已包含数百万份文档 并且会随着时间的推移而不断增长 每个文档都有以下字段 位置 geojson 对象 日期 日期对象 缩放级别 int32 条目类型
  • 实现多类骰子损失函数

    我正在使用 UNet 进行多类分割 我对模型的输入是HxWxC我的输出是 outputs layers Conv2D n classes 1 1 activation sigmoid decoder0 Using SparseCategor
  • Android:如何切换主题为深色模式?

    从 Android 10 开始 您可以在深色模式和默认浅色模式之间切换 我还没有对此进行任何更仔细的研究 因为这是一个新主题 深色模式颜色切换是由操作系统自动进行的 还是有什么方法可以告诉我的应用程序在打开深色模式时切换不同的应用程序主题
  • 使用 vimdiff 查看所有 `git diffs`

    I setup git diff包装到 vimdiff 中 使用 Git 与 Vimdiff 的差异 http technotales wordpress com 2009 05 17 git diff with vimdiff 作为指导
  • 从Unity3D调用静态jar函数

    我制作并编译了一个Android库 其中包含一个简单的类和一个简单的静态函数 package moo public class MyTestClass public static String Foo return Foo from Moo
  • 如何在原则 2 中为 1:1 关系指定多个连接条件

    文件指出 class Cart OneToOne targetEntity Customer inversedBy cart JoinColumn name customer id referencedColumnName id priva
  • bash/cygwin/$PATH:我真的需要重新启动才能更改 $PATH 吗?

    我想使用安装在cygwin下的Python 而不是直接安装在WinXP下的Python 所以我编辑了 bashrc并获取了它 没有改变 我尝试了其他事情 但我没有做任何改变 PATH 所以我重新启动 啊哈 现在 PATH 已更改为我想要的
  • 按 WP_Query 中的自定义 Woocommerce 产品排序进行排序

    我创建了一个短代码 通过以下查询按类别显示产品 atts shortcode atts array type gt product posts gt 1 category gt atts list products query new WP
  • 为什么数字 1e9999...(31 个 9)会在 R 中引起问题?

    进入时1e9999999999999999999999999999999进入 R 时 R 挂起并且不会响应 需要将其终止 这似乎发生在 3 台不同的计算机 操作系统 Windows 7 和 Ubuntu 上 它发生在 RStudio RGU
  • 没有输出时的“最新”Gradle 任务状态

    当任务不产生任何输出时 如何正确地将 Gradle 任务标记为 最新 如果上次运行成功并且输入自那时以来没有更改 则任务应保持 最新 Gradle 指南在部分之前指出15 9 2 http gradle org docs current u