Gradle выполнить командные строки в пользовательской задаче

В моем файле Gradle я определил следующую задачу:

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

Я хочу поместить в эту задачу несколько командных строк. Как я могу это сделать?

Я использую библиотеку для автоматической публикации в Google Play. Мой проект основан на Product Flavors, и мне нужно передать в командной строке терминала командную строку для каждого из моих вариантов. Поэтому я хочу передать все команды в строке test_example задача.

1 ответ

Решение

У вас есть два основных удобных варианта:

  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. Стандартный вывод и вывод ошибок от выполненных команд будут перенаправлены на stdout и stderr процесса gradle.

Другие вопросы по тегам