我正在编写将应用程序部署到服务器的任务。但是,我希望此任务仅在我当前的git分支是主分支时运行。 我怎样才能获得当前的git分支?
gradle-git
方法:我知道在getWorkingBranch()
任务下有一个gradle-git plugin方法GitBranchList
,但我会在任何时候尝试执行
task getBranchName(type: GitBranchList) {
print getWorkingBranch().name
}
我收到“任务尚未执行”错误。我查看了source,当没有分支集时它会抛出该错误。这是否意味着这种方法不能完全符合我的想法?我需要在某处设置分支?
答案 0 :(得分:26)
您也可以在没有插件的情况下获得git branch name
。
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
}
请参阅:Gradle & GIT : How to map your branch to a deployment profile
答案 1 :(得分:18)
不,这并不意味着没有设置分支。这意味着该任务尚未真正执行。你要做的是在配置闭包中调用一个方法,而你可能想在任务执行后调用它。尝试将您的任务更改为:
task getBranchName(type: GitBranchList) << {
print getWorkingBranch().name
}
使用<<
添加doLast,将在执行任务后执行。