使用Git进行Gradle版本控制

近1999

我正在尝试使用Git在Gradle中创建自动版本控制,但是在构建应用程序时出现了一些错误。我的操作系统是Windows。

def getVerName = { ->
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine "git", "describe", "--long"
            standardOutput = stdout
        }
        def result = stdout.toString()
        result = result.trim()
        return result
    } catch (ignored) {
        return null
    }
}

这是我的异常的堆栈跟踪

我的GIT路径:C:\Program Files\Git\cmd设置PATH局部变量什么也不做。从StackTrace中,您可以看到Gradle在app目录中正在寻找git.exe。如何改变那条路?

org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'git''
    at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:197)
    at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:327)
    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Error:net.rubygrapefruit.platform.NativeException: Could not start 'git'
    at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
    at net.rubygrapefruit.platform.internal.WindowsProcessLauncher.start(WindowsProcessLauncher.java:22)
    at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68)
    ... 5 more
Error:java.io.IOException: Cannot run program "git" (in directory "C:\Users\Mellony\Resg\app"): CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
    ... 8 more
Error:java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
    at java.lang.ProcessImpl.start(ProcessImpl.java:137)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 9 more
愤怒

如果gradle无法找到git的位置,我会尝试使用git可执行文件的完整路径,或者workingDir为Exec设置值。

exec {
  workingDir '../path/to/git/bin'
  commandLine 'cmd', '/c', 'git',...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 git 进行 Composer 包版本控制

使用git与Dymola / Modelica进行版本控制

如何使用GIT进行语义版本控制?

使用 Git 进行发布/构建/分支管理(版本控制)

如何使用git对我的jBPM项目资产进行版本控制?

使用 Git 进行版本控制的项目的备份选项

我可以使用git对psd文件和Maya项目进行版本控制吗?

使用git进行配置文件版本控制是个好主意吗?

在封闭的公司环境中使用Git进行目标平台版本控制

关于使用Harpy进行语义版本控制

如何使用Chocolatey进行版本控制?

git 最佳实践是对顶级目录进行版本控制吗?

使用curl命令进行git版本发布

在Mac OS X上使用Git对带有docx2txt的Word .docx文件进行版本控制

对Gradle中的依赖项使用语义版本控制

Azure Blob 存储版本控制 - 使用文件名以外的元数据属性进行版本控制

使用Python对文件名进行版本控制

使用REST进行资源草稿,发布和版本控制

在GAE上使用端点V2进行版本控制

使用 Firestore 后端进行版本控制的最佳实践

使用 django-storages 进行 S3 版本控制

Mongodb:使用搜索进行数据版本控制

如何使用Spring MVC对我的API进行版本控制?

使用eclipse进行单人项目的版本控制?

如何使用 Swagger 和 Spring Boot 进行版本控制?

使用IHttpControllerSelector进行AttributeRouting-Api版本控制

使用标准gitflow对npm依赖项进行版本控制

我应该使用什么进行本地版本控制?

使用Marklogic时对XML模式进行版本控制