어떻게 컴파일 Gradle을 플러그인에 명령 줄 명령을 실행하려면?

존 사르 :

당신은 어떻게 Gradle을 DSL (없이 Gradle을 작업에서 CMD 명령을 실행할 수 있습니다 commandLine 'echo', ':)'), 같은 즉, 뭔가 :

open class MyTask : DefaultTask() {

    @TaskAction
    fun task() {
        Runtime.getRuntime().exec("echo :)") //Doesn't print anything
    }

}
itwasntme :

때문에 아무것도 인쇄되지 않은 exec새로운 프로세스에 주어진 명령을 실행하는 방법은, Gradle을 작업을 처리하는 과정에 분리 (자체 I / O 스트림을 갖는다).

exec방법은 프로세스 개체를 반환합니다. 문서를 인용, 프로세스는 "ProcessBuilder.start와 Runtime.exec의 시작 기본 프로세스의 제어를 제공합니다."

그래서, 실행 된 명령의 출력을 캡처하는, 해당 명령의 과정에서 그것을 읽을 필요가있다.

출력을 인쇄하는 간단한 예가 echo :)될 수있다 :

task something {
    doLast {
        Process echo = Runtime.getRuntime().exec("cmd /c echo :)")
        println new BufferedReader(new InputStreamReader(echo.getInputStream())).readLine()
    }
}

(나는 데 cmd /c는 Windows OS의 명령 접두어)

추천

출처http://43.154.161.224:23101/article/api/json?id=25481&siteId=1