web-dev-qa-db-ja.com

Gradleはカスタムタスクでコマンドラインを実行します

私のgradleファイルで、次のタスクを定義しました:

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

このタスク内にいくつかのコマンドラインを配置します。どうやってやるの ?

ライブラリを使用して、Google Playに自動的に公開しています。私のプロジェクトはプロダクトフレーバーに基づいており、フレーバーの1つ1つにコマンドラインごとにターミナルコマンドラインを渡す必要があります。だから私はtest_exampleタスクですべてのコマンドラインを渡したいです。

11
Corneliu

基本的に、2つの主要な便利なオプションがあります。

  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!"
    }
    

どちらの場合も、クロージャー内で、 ExecSpec のメソッドを使用して実行パラメーターを指定できます。実行されたコマンドからの標準出力とエラー出力は、gradleプロセスのstdoutとstderrにリダイレクトされます。

24
Andrei LED