簡體   English   中英

如何在gradle中獲取當前的git分支?

[英]How can I get the current git branch in gradle?

我正在編寫將應用程序部署到服務器的任務。 但是,我希望此任務僅在我當前的git分支是主分支時運行。 我怎樣才能獲得當前的git分支?

gradle-git方法:

我知道有一個gradle-git插件在任務GitBranchList下有一個getWorkingBranch()方法,但是我試着執行

task getBranchName(type: GitBranchList) {
   print getWorkingBranch().name
}

我收到“任務尚未執行”錯誤。 我查看了源代碼 ,當沒有分支集時它會拋出該錯誤。 這是否意味着這種方法不能完全符合我的想法? 我需要在某個地方設置分支?

你也可以在沒有插件的情況下獲得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:如何將分支映射到部署配置文件

不,這並不意味着沒有設置分支。 這意味着該任務尚未真正執行。 你要做的是在配置閉包中調用一個方法,而你可能想在任務執行后調用它。 嘗試將您的任務更改為:

task getBranchName(type: GitBranchList) << {
    print getWorkingBranch().name
}

使用<<你正在添加一個doLast,它將在任務執行后執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM