利用maven-git-commit-id-plugin實現版本與程式碼關聯

  • 2019 年 10 月 7 日
  • 筆記

業務需求

在一次關於devops平台的demo中,我們的運維同學提出一個需求,希望能夠將發布的二進位文件和程式碼進行關聯。當然,他們的希望是,能夠點一下就能看到程式碼。(因為,在之前的版本發布規範中,版本包中是包含了程式碼的……)

解決方案

通過 maven-git-commit-id-plugin 可以提供如下的重要資訊: git_url: 程式碼庫網址 git_branch: 本次構建的二進位包所構建時 對應的分支 bit_commit: 本次構建的二進位包構建時對應的HEAD的commit id

通過這三個資訊,基本就可以實現上述的業務需求了。

更進一步的解決方案

在通過工具提供的demo配置實現上述需求後,又考慮是否可以通過提供restful介面的方式來對外提供查詢服務。這樣,運維同學甚至都不用通過打開jar/war包來查看上述了。 筆者甚至在github上找到了這樣一個demo mygitcommitiplanet 思路是: 1)把maven-git-commit-id-plugin運行所產生的git.properties文件的內容修改為json形式。 2)通過「/version」 的介面對外提供查詢服務。 後續,甚至都可以通過這個介面來檢查線上系統的版本和cmdb中版本的一致性,或者做系統的健康性巡檢(ping)。果然只有想不到,沒有做不到。

介面示例:

@RestController  public class VersionController {      @RequestMapping(value = "/version", method= GET)      public String versionInformation() {          return readGitProperties();      }  

介面查詢效果:

version.png