前一篇我們用了不同的JDK版本,測試相容的範圍。Matrix的能耐當然不止於測試JDK版本,這篇我們再加碼,加入Guava的所有主版本,來測試專案可正常執行的環境結果。
本篇同步發表於:http://www.gibar.co/2014/10/jenkins-matrix-combinations-plugin.html
開始前先來介紹一下Guava。Guava是由Google工程師群所維護的Java工具包,內容五花八門,而且實用,某種層度上Java8的內容受到Guava的影響很深。Google Style的專案特色,文件多、實用高、效能佳、向下絕對不保證相容。用過Google開發相關工具的人們,應該對他們這風格體驗深刻。今天的情境,專案使用Guava開發,但不知道使用的指令可以活到那一個版本......Find it!
本篇相關外掛
使用Matrix Project測試專案使用的Guava各版本與JDK的相容性
今天目標的結果
要建立多重設定,我們的專案也必需要能夠接收變數,才能透過變數引入版本的資訊,引導Maven載入指定套件,我們先講設定,下一步會說明運作原理。
pom.xml,套件以變數方式指定 https://github.com/abola/jenkins-matrix/blob/master/pom.xml
設定請參考前一篇的,接續該篇內容,除了已有的JDK外,再增加了一條軸線『guava.version』,要增加不同的版本,可以使用空白或是換行為區隔。
所以看來總共會測試四種JDK x 10種Guava版本,一次有40組測試!
多重設定專案的原理,說破了就知道很簡單,只是將設定轉為變數,引入build tool的執行過程中。
由引數帶入的參數會蓋過原本 <properties> 中的設定
結果產生出來了,看來這專案某個語法在Guava 16.0 以後有調整了API,而且是在 Guava 10 開始有的指令。而JDK5只能在Guava 11.0前的版本使用。
既然,官方都有說明Guava 12版開始必需使用JDK6+,那我們沒有必要每次都測試肯定會錯的部份了。這篇最後再介紹一組外掛 Matrix Combinations Plugin,讓你可以自訂執行Matrix 中的部份片段。使用的方法比較特別,回到專案的組態設定畫面。將參數化建置勾選起來吧!
在新增參數中可以找到『Matrix Combinations Parameter』的選項
Jenkins 的Matrix Project原理並不難,只是需要與Build Tool整合,例如在pom.xml中,將核心的lib以變數的方式宣告版本就是不錯的開始。
這篇的執行過程中,一口氣就開了40個作業同時進行,有什麼方法加快消化排隊的作業嗎?建立Slave主機!奴役更多的Jenkins來為我們工作。但每奴役一個Jenkins就要再設定一次環境,奴役他們也挺麻煩的。直到近期火紅的技術,Docker漂亮的解決了,奴役Jenkins變簡單了!下一系列,從使用Docker建立Jenkins服務開始,並認識Jenkins Slave 。
下一篇:Docker - Docker、Docker、Docker (上)
本篇同步發表於:http://www.gibar.co/2014/10/jenkins-matrix-combinations-plugin.html