【问题标题】:Gradle - How to add some delay pause hang in GradleGradle - 如何在 Gradle 中添加一些延迟暂停挂起
【发布时间】:2014-02-13 03:47:17
【问题描述】:

我正在寻找一种方法在两个 gradle 任务的调用之间插入几秒钟的暂停。

我可以使用

firstTask.doLast {

.....

}

类似 Linux/Unix 的东西

sleep 45

有什么想法吗?

【问题讨论】:

    标签: gradle task delay sleep onpause


    【解决方案1】:

    如果你想在 Tomcat 中运行集成测试,那么只需像这样使用Gradle Tomcat Plugin

    ext {
        tomcatStopPort = 8081
        tomcatStopKey = 'stopKey'
    }
    
    task integrationTomcatRun(type: org.gradle.api.plugins.tomcat.TomcatRun) {
        stopPort = tomcatStopPort
        stopKey = tomcatStopKey
        daemon = true
    }
    
    task integrationTomcatStop(type: org.gradle.api.plugins.tomcat.TomcatStop) {
        stopPort = tomcatStopPort
        stopKey = tomcatStopKey
    }
    
    task integrationTest(type: Test) {
        include '**/*IntegrationTest.*'
        dependsOn integrationTomcatRun
        finalizedBy integrationTomcatStop
    }
    
    test {
        exclude '**/*IntegrationTest.*'
    }
    

    【讨论】:

    • 您好 Vidya,您能提供一种添加延迟的方法吗? firstTask 在 Tomcat 中部署了一个 .war(它已经在运行,所以基本上 tomcat 只需要 30-45 秒即可回收以选择新版本提供的新 .war),我想在此之后等待 45 秒,然后再打电话gradle integrationTest 任务(即我的 secondTask)。
    • 实际上你提到的那个我已经有了那个代码,但我需要的只是如何插入延迟。由于我们有很多自定义,我认为我们不能使用 Gradle 的 Tomcat 插件,但感谢您的输入。谢谢维迪亚。
    【解决方案2】:

    首先,我会尝试找到一个比每次都等待这么长时间更好的解决方案。无论如何,要将第一个任务延迟 45 秒,您可以这样做:

    firstTask.doLast {
        sleep(45 * 1000)
    }
    

    熟悉 Groovy 的核心 API 的一个好方法是学习 Groovy JDK(也称为 GDK)。这也是一个方便的参考。

    【讨论】:

    • 或:firstTask { // some stuff here; doLast { sleep(45 * 1000) } }
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2022-10-04
    • 2021-01-21
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 2012-04-20
    • 2018-12-10
    相关资源
    最近更新 更多