如何通过Gradle在Windows上执行Git命令?
因此,我有以下代码片段:如何通过Gradle在Windows上执行Git命令?,windows,git,gradle,command,Windows,Git,Gradle,Command,因此,我有以下代码片段: def getVersion = { -> def stdout = new ByteArrayOutputStream() exec { commandLine 'git', 'describe', '--tags' standardOutput = stdout } return stdout.toString().trim() } 无论何时调用getVersion(),都会出现以下错误: *
def getVersion = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags'
standardOutput = stdout
}
return stdout.toString().trim()
}
无论何时调用getVersion()
,都会出现以下错误:
* What went wrong:
A problem occurred evaluating root project 'ForgeWorkspace'.
> Process 'command 'git'' finished with non-zero exit value 128
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 6.442 secs
在我的MacBookPro上,我从未遇到过这个问题,但在Windows上确实遇到过。非常感谢您的帮助 在windows上,
commandLine
的前两个参数应该是cmd和/c
//on windows:
commandLine 'cmd', '/c', 'git'...
看。@愤怒几乎是正确的。由于您确实需要使用Windows命令提示符(cmd)让操作系统在系统路径中搜索git可执行文件,因此整个git命令应该作为一个参数传递,该参数位于
/c
开关之后(这意味着“execute Command”)
因此,以下措施应该有效:
commandLine 'cmd', '/c', 'git describe --tags'
你可能会考虑查看Git Git插件,而不是自己编码:(也许它提供了你正在寻找的)我不想添加另一个插件,如果我不需要的话。如果您有一个使用该插件实现我的函数的答案,请将其放到下面。我添加了
commandLine'cmd'、'/c'、'git'、'descripe'、'-tags'
,但仍然得到了几乎相同的错误,除了用'cmd'代替'git'。getversion
应该是任务吗?不,它应该返回基于最新Git版本的唯一版本并提交。该功能在我的MacBook上运行良好,但由于某些原因,在我的Windows计算机上无法运行。唯一的问题是命令行
行。请使用--stacktrace运行并发布您的stacktrace。我也会尝试使用git的完整路径,而不仅仅是'git'