使用 Gradle,如何打印每个任务执行所需的时间?

2024-04-21

现在,对于频繁运行的 gradle 目标之一,输出如下所示:



:DataPlanner:clean
:common:clean
:server:clean
:simulator:clean
:util:clean
:util:compileJava
:util:processResources UP-TO-DATE
:util:classes
:util:compileTestJava
:util:processTestResources
:util:testClasses
:util:test
:util:jar
:common:compileJava
:common:processResources UP-TO-DATE
:common:classes
:common:compileTestJava
:common:processTestResources
  

我怎样才能让它看起来更像这样?



:DataPlanner:clean
took 2secs
:common:clean
took 2 secs
:server:clean
took 3 secs
:simulator:clean
took 4 secs
:util:clean
took 1 sec
...
  

如果不可能让每个任务在完成后打印其持续时间,则打印时间戳将是一个可接受的替代方案。

有任何想法吗?

修改了对我不起作用的建议解决方案之一,这个解决方案确实有效:

gradle.taskGraph.beforeTask { Task task ->
task.ext.setProperty("startTime", new java.util.Date())
}

gradle.taskGraph.afterTask { Task task, TaskState state ->
    int secs = ( new java.util.Date().getTime() - task.ext.startTime.getTime() ) / 1000
    int mins = secs / 60

    if ( 4 < secs ) {
        int sec = secs - mins * 60
        println " -> took " + mins + ( ( 1 == mins ) ? " min " : " mins " ) + sec + ( ( 1 == sec ) ? " sec" : " secs" )
    }
}

我不知道你是如何得到这个特定的输出的。但是,您可以使用--profile命令行标志以获得有关您的构建的报告。然后你会得到一个位于 build/reports/profile 下的 html 报告,在 Gradle 2.3 中如下所示:

您可以在 Gradle 文档中阅读更多相关信息here http://gradle.org/docs/current/userguide/tutorial_gradle_command_line.html#sec:profiling_build.

如果您坚持要获取指定的特定输出,您可以尝试使用beforeTask and afterTasktaskGraph 挂钩来测量时间并将其打印出来。请注意,您需要小心谨慎,以防 gradle 以并行模式执行。

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

使用 Gradle,如何打印每个任务执行所需的时间? 的相关文章

  • 如何将自定义存储库添加到 gradle 构建文件?

    我想从maven切换到gradle 在 pom xml 文件中 我有一个自定义存储库
  • cucumber-junit-platform-engine 中的功能文件发现

    In cucumber junit我使用的库 CucumberOptions定义功能文件位置 package com mycompany cucumber import cucumber api CucumberOptions import
  • Android Studio 安装失败,APK 未签名

    最近从 Eclipse 更改为 Android Studio 我还更改了 JDKjava open jdk to jdk1 7 0 45 现在我尝试运行我的第一个应用程序 并收到以下消息 Installation failed since
  • 如何在 Android Studio 中构建项目测试目录?

    目前还没有这方面的约定 但是现在我如何构建 Android Studio 的测试目录呢 Android 测试基础 http developer android com tools testing testing android html页面
  • 如何将库添加到 LIBGDX 项目的依赖项 gradle

    一切都在问题中 我已经尝试了在 SO 和其他网站中找到的所有答案 但没有运气 这就是我迄今为止尝试过的 adding compile fileTree dir lib include jar 到我的 build gradle adding
  • 如何为新任务类型扩展 Gradle 任务的行为?

    我想为一些测试任务设置一些东西 更具体地说 我想添加一些环境变量和一些系统属性 也许还有一些其他内容 例如 依赖项 或 workingDir 与常规的Test任务我可以做到这一点 task test1 type Test dependsOn
  • Android studio 添加外部项目到 build.gradle

    我有一个示例项目 具有以下设置 root Pure Java Lib Android Test Lib Android Test Project 哪里 测试项目 取决于 Test Lib 最后一个取决于 纯Java库 编译项目并启动此设置效
  • 如何增加 Gradle 守护进程的最大堆大小?

    签署 apk 时 我收到以下消息 To run dex in process the Gradle daemon needs a larger heap It currently has 1024 MB For faster builds
  • 活动构建变体没有测试工件

    我基于 调试 构建变体创建了一个名为 bitrise 的新构建类型 使用 debug 构建变体时 经过检测的 androidTests 构建并运行良好 但是当我切换到新的 bitrise 构建变体时 出现以下错误 Process finis
  • Spring Boot 开发工具 IntelliJ

    我正在使用 Spring Boot 1 3 0 M5 并且我正在尝试利用 devtools 这允许您在开发过程中对应用程序进行更改 并且启动将重新加载您的应用程序 我已经看到这个演示使用 Java 和 Maven 在 STS 中工作 我正在
  • 在 Gradle 中运行自定义测试任务而无需重新编译

    我有一个 Gradle 自定义测试任务来运行我的集成测试 我希望能够在 Gradle 不自动完成之前的所有阶段并仅运行测试的情况下运行它 有没有办法在每个构建步骤不使用 x 的情况下执行此操作 None
  • 更新到 3.2.0 后 Gradle 构建失败

    因此 在将 Gradle 插件更新到 3 2 0 并将 gradle wrapper 更新到 4 6 后 我遇到了问题 Android Studio 版本是 3 2 使用 Gradle 版本 即 alpha 11 也没有结果 什么地方出了错
  • 错误包括 bouncycastle 提供商

    我需要使用bouncycastle provider我的项目中的库 我已将其包含在 gradle 项目中 apply plugin application sourceCompatibility 1 6 version 1 0 0 main
  • JsInterop“com 未定义”

    尝试使用 JsInterop 与每个 Javascript 的 LibGDX 项目进行通信 我正在关注 将 Java 类型导出到 JavaScript 示例here http www gwtproject org doc latest De
  • Gradle:从另一个插件添加插件依赖项

    我正在创建 gradle 自定义插件 我的任务之一需要确保另一个插件应用于同一项目 因为它将在其之上运行 我希望我的插件的用户避免设置对另一个插件的显式依赖 我想在我的插件中执行此操作 所以 我想要这个插件 https plugins gr
  • ANTLR4 在导入时找不到语法

    我正在尝试将 ANTLR4 语法拆分为多个文件 以便我可以更轻松地测试它们 我在 java 项目中使用 gradle 作为构建工具 两种语法都单独正确编译 但是当我将导入添加到我的主语法中时 我收到下一个编译错误 错误 110 kaneko
  • 无法找到可用的空闲守护进程

    我正在尝试在 Visual Studio Code 中将 Talon SRX 与 WPILib 一起用于 First Robotics for Java 我按照此处的说明进行操作 https phoenix documentation re
  • Gradle - 我可以在项目依赖项中包含任务的输出吗

    我有一个任务 从这些源生成java源和一组jar 例如 项目a 我想将这些 jar 导出到依赖项目 例如 项目b 所以这就是我现在所拥有的大致内容 a gradle configurations generatedJars task gen
  • ClassCastException:NoClassDefFoundError 无法转换为 RuntimeException

    我正在努力将我的代码库升级到 Gradle 2 2 和 Android Studio 1 0 我目前正在尝试让 Robolectric 2 4 正常工作 但当我尝试运行单元测试时遇到一个奇怪的问题 该问题仅在gradle clean 多次运
  • IntelliJ - 无效源版本:17

    我已经在 IntelliJ 中使用 Gradle 创建了一个使用 Java 17 的新 Java 项目 运行我的应用程序时出现错误Cause error invalid source release 17 我的设置 我已经安装了openjd

随机推荐