工作中用 Jenkins 做 iOS 和 Android 的持續集成,之前實現的是當 git 有新代碼提交的時候,就會自動編譯並上傳安裝包到蒲公英,然后自動發送QQ群通知或者討論組通知給相關小伙伴,方便其他小伙伴直接下載測試。但也有一點不方便的是,其他人下載還不能明確的知道這一版更新了什么。考慮到因為每次 git 的代碼提交會說明這次提交修改了什么,所以就打算直接把獲取 git 的提交記錄顯示在最終的編譯完成的通知中,直觀的顯示給每個人。
最后收到通知的效果基本是下面這個樣子:

由於 Jenkins 並沒有官方的插件來做這個事,只能找現成的已經有的開源代碼自己編譯插件,最終也終於找到了。
那就直接開始做了。
下載源代碼
首先,這個插件的源碼地址是:https://github.com/daniel-beck/changelog-environment-plugin
下載源碼。
安裝 Maven
然后編譯,編譯需要 Maven,如果沒有裝Maven,下面有一個簡單的安裝步驟,如果安裝過程中出現問題,還請自行谷歌解決。
下載地址:https://maven.apache.org/download.cgi
解壓到某個目錄下,例如:
/Users/XXX/apache-maven-3.5.0
然后
$ vi ~/.bash_profile
添加 Maven 相關環境
# Maven
export M2_HOME=/Users/sunbinhua/apache-maven-3.5.0
export PATH=$PATH:$M2_HOME/bin
保存退出,輸入命令讓 Maven 生效
$ source ~/.bash_profile
輸入 mvn -v 來檢查 Maven 是否生效。
編譯源碼生成 hpi
cd 到 changelog-environment-plugin-master 下,執行
$ mvn verify
經過比較長的時間,會在changelog-environment-plugin-master/target/下有個changelog-environment.hpi文件這就是我們需要的插件。
然后把生成的插件上傳到 Jenkins。
使用方法
在項目的配置中,構建環境下面多了一項 Add Changelog Information to Environment
選中后,多了三項:Entry Format、File Item Format、Date Format
如下圖:


Entry Format中添加 %3$s(at %4$s via %1$s),參數分別為ChangeLog內容,時間,提交人。
Date Format中添加 yyyy-MM-dd HH:mm:ss 就是時間格式。
在命令行中使用SCM_CHANGELOG獲取即可,比如下圖是我使用的地方


轉自:https://www.jianshu.com/p/f03fc1bf5783