Gradle在自定义任务中执行命令行

时间:2016-07-07 16:27:26

标签: android gradle gradle-task

在我的gradle文件中,我定义了以下任务:

task text_example <<
{
   //?!? commandLine ''
   println 'Fam Flinstone'
}

我想在这个任务中添加一些命令行。我怎么能这样做?

我使用图书馆在Google Play中自动发布。我的项目基于Product Flavors,我需要通过命令行传递终端命令行,用于我的每一个口味。所以我想在test_example任务中传递所有命令行。

1 个答案:

答案 0 :(得分:21)

您基本上有两个主要的方便选择:

  1. 使用Gradle Exec任务类型

    task fooExec(type: Exec) {
        workingDir "${buildDir}/foo"
        commandLine 'echo', 'Hello world!'
    } << {
        println "Executed!"
    }
    
  2. 使用Gradle Project.exec方法

    task execFoo << {
        exec {
            executable 'echo'
            args 'Hello world!'
        }
        println "Executed!"
    }
    
  3. 在闭包内的两种情况下,您都可以使用ExecSpec的方法指定执行参数。 执行命令的标准输出和错误输出将被重定向到gradle进程的stdout和stderr。