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

Gradle execute command lines in custom task

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

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

我想在此任务中放入一些命令行。我该怎么做?

我正在使用库在 google 播放中自动发布。我的项目基于 Product Flavors,我需要通过命令行为我的每一种口味传递终端命令行。所以我想在 test_example 任务中传递所有命令行。

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

  1. 使用GradleExec任务类型

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

     task execFoo {
         doLast {
             exec {
                 workingDir "${buildDir}/foo"
                 executable 'echo'
                 args 'Hello world!'
             }
             println "Executed!"
         }
     }
    

在这两种情况下,您都可以在闭包内使用 ExecSpec 的方法指定执行参数。 执行命令的标准输出和错误输出将重定向到 gradle 进程的 stdout 和 stderr。