我想在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)
}
这种构建成功,但没有给我结果。我遗失或做错了什么?
答案 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”了解更多信息。