我如何在gradle获得当前的git分支?
我正在编写一个任务来将我的应用程序部署到服务器。但是,我希望仅当我当前的git分支是主分支时才运行此任务。 如何获取当前git分支我如何在gradle获得当前的git分支?,git,gradle,Git,Gradle,我正在编写一个任务来将我的应用程序部署到服务器。但是,我希望仅当我当前的git分支是主分支时才运行此任务。 如何获取当前git分支 gradlegit方法: 我知道在任务GitBranchList下有一个方法getWorkingBranch(),但只要我尝试执行 task getBranchName(type: GitBranchList) { print getWorkingBranch().name } 我得到一个“任务尚未执行”错误。我查看了,当没有分支集时,它会抛出该错误。这是否
gradlegit
方法:
我知道在任务GitBranchList
下有一个方法getWorkingBranch()
,但只要我尝试执行
task getBranchName(type: GitBranchList) {
print getWorkingBranch().name
}
我得到一个“任务尚未执行”错误。我查看了,当没有分支集时,它会抛出该错误。这是否意味着这种方法没有达到我认为的效果?是否需要在某个位置设置分支?否这并不意味着未设置分支。这意味着任务还没有真正执行。您试图做的是在配置闭包中调用一个方法,而您可能希望在任务执行后调用它。尝试将任务更改为:
task getBranchName(type: GitBranchList) << {
print getWorkingBranch().name
}
task getBranchName(type:GitBranchList)您也可以在不使用插件的情况下获取git分支名称
def gitBranch() {
def branch = ""
def proc = "git rev-parse --abbrev-ref HEAD".execute()
proc.in.eachLine { line -> branch = line }
proc.err.eachLine { line -> println line }
proc.waitFor()
branch
}
请参阅:这可能是给定的,但应注意,许多CI引擎以分离状态签出最新提交,而不是主或命名分支。在这种情况下,此解决方案将返回HEAD,而不是分支名称。