如何通过groovy执行shell命令

时间:2016-01-15 05:51:43

标签: git shell groovy gradle

我想在groovy中编写一个shell命令并通过gradle执行。例如,我有这个命令:

git log tag2 tag1

这列出了两个标签之间的提交。 我只想在groovy中写这个。 目前,我写的是:

task show <<                                       
{                                          
    def fist = "git log new-tag4 new-tag5" 
    println("[fist]")                      
    Process process = fist.execute()       
    println(process.text)                  
}  

这种构建成功,但没有给我结果。我遗失或做错了什么?

1 个答案:

答案 0 :(得分:1)

首先,确保您在正确的目录中:

Process process = fist.execute(null, new File("your git repo"))

或者:

"git log new-tag4 new-tag5".execute(null, new File("C:\Rep9"))  

其次,请确保您看到所有内容(stdout,stderr)以防命令出现问题:

def process=new ProcessBuilder("git log new-tag4 new-tag5").redirectErrorStream(true).directory(new File("your git repo")).start()
process.inputStream.eachLine {println it}

点击“Executing shell commands in Groovy”了解更多信息。