• Gradle Goodness: Continue Build Even with Failed Tasks


    If we run a Gradle build and one of the tasks fails, the whole build stops immediately. So we have fast feedback of our build status. If we don't want to this and want Gradle to execute all tasks, even though some might have failed, we use the command line option --continue. When we use the --continue command line option Gradle will execute every task where the dependent tasks are not failing. This is also useful in a multi-module project where we might want to build all projects even though some may have failing tests, so we get a complete overview of failed tests for all modules.

    In the following Gradle build file we have two tasks. The task failTask throws a TaskExecutionException to purposely fail the task. The successTask will not fail:

    00.task failTask << { task ->
    01.println "Running ${task.name}"
    02. 
    03.throw new TaskExecutionException(
    04.task,
    05.new Exception('Fail task on purpose'))
    06.}
    07. 
    08.task successTask << {
    09.println "Running ${it.name}"
    10.}

    Let's run both tasks from the command line and see the output:

    $ gradle failTask successTask
    :failTask
    Running failTask
    :failTask FAILED
     
    FAILURE: Build failed with an exception.
     
    * Where:
    Build file '/Users/mrhaki/samples/gradle/continue/build.gradle' line: 4
     
    * What went wrong:
    Execution failed for task ':failTask'.
    > Fail task on purpose
     
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
     
    BUILD FAILED
     
    Total time: 4.148 secs
    $

    We see the build has failed and only the task failTask is executed. Now we run the same two tasks, but we use the command line option --continue:

    $ gradle --continue failTask successTask
    :failTask
    Running failTask
    :failTask FAILED
    :successTask
    Running successTask
     
    FAILURE: Build failed with an exception.
     
    * Where:
    Build file '/Users/mrhaki/samples/gradle/continue/build.gradle' line: 4
     
    * What went wrong:
    Execution failed for task ':failTask'.
    > Fail task on purpose
     
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
     
    BUILD FAILED
     
    Total time: 6.918 secs
    $

    This time the successTask is executed even though the failTask has failed again. Gradle will keep track of all tasks that have failed and displays a summary with all the tasks that have failed.

    Written with Gradle 2.2.1

  • 相关阅读:
    人月神话2
    cJson 常见用法
    Python C扩展
    动态链接--运行时加载dlopen
    mtrace 简介
    Linux coredump
    动态链接--so的搜索过程
    线程同步--条件变量
    编译过程学习
    Linux 信号
  • 原文地址:https://www.cnblogs.com/GoAhead/p/4187479.html
Copyright © 2020-2023  润新知