Ничего не печатается, потому что метод exec
выполняет данную команду в новом процессе, отдельном от процесса, обрабатывающего задачу Gradle (и имеет свои собственные потоки ввода / вывода).
Метод exec
возвращает объект Process. Ссылаясь на документы, Процесс "обеспечивает управление собственными процессами, запускаемыми ProcessBuilder.start и Runtime.exe c".
Итак, чтобы захватить вывод выполненной команды, необходимо прочитать его из процесса этой команды.
Простой пример вывода на печать из echo :)
может быть:
task something {
doLast {
Process echo = Runtime.getRuntime().exec("cmd /c echo :)")
println new BufferedReader(new InputStreamReader(echo.getInputStream())).readLine()
}
}
(у меня префикс cmd /c
, из-за ОС Windows)