Gradle always does println from any task

前端 未结 2 1832
花落未央
花落未央 2020-11-27 20:33

I have simple build.gradle (or any build.gradle with task that has println)

println GradleVersion.current().prettyPrin         


        
相关标签:
2条回答
  • 2020-11-27 21:00

    from Chapter 55. The Build Lifecycle http://www.gradle.org/docs/current/userguide/build_lifecycle.html

    // in `settings.gradle`
    // println 'This is executed during the initialization phase.'
    
    println 'This is executed during the configuration phase.'
    
    task configure {
        println 'This is also executed during the configuration phase.'
    }
    
    task execute << {
        println 'This is executed during the execution phase.'
    }
    

    run with gradle help

    output:

    This is executed during the initialization phase.
    This is executed during the configuration phase.
    This is also executed during the configuration phase.
    :help
    
    Welcome to Gradle 1.10.
    
    To run a build, run gradle <task> ...
    
    To see a list of available tasks, run gradle tasks
    
    To see a list of command-line options, run gradle --help
    
    BUILD SUCCESSFUL
    
    Total time: 1.882 secs
    
    0 讨论(0)
  • 2020-11-27 21:21

    If You have the following piece of code:

    task task1 {
        println 'task1 starting'
    }
    

    You're in configuration phase of a task. This phase is run during script evaluation. If You'd like to print something while task is executed You need to add an action for task.

    It looks like:

    task task1 << {
       println 'task1 action'
    }
    

    This piece of code will be evaluated while the task is being run. << is exactly the same as invoking doLast method on Task's object. You can add many actions.

    EDIT I also highly encourage you to read this blog post.

    0 讨论(0)
提交回复
热议问题