search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

持續交付系列 | Apache Maven項目中使用pipeline多分支的歷史背景和實現方式

大家都認為,多分支項目比以前改進太多。

本文關於如何使用Jenkins和Pipeline讓Apache Maven項目更快更好地工作。

大多數Java開發人員應該會對Apache Maven項目有所了解。Maven用於構建大量的Java項目。事實上,Jenkins項目和大多數Jenkins插件目前也在用Maven做構建。

項目歷史

2015年Maven 3.3.9(外部版本號)發布之後,該項目似乎就停滯不前了。實際上,該項目正在嘗試解決其核心組件之一的關鍵問題:Eclipse Aether。因為Eclipse基金會認定Aether項目不再活躍,並開始了終止項目的推動。

在幕後,Maven項目管理委員會正在與Eclipse基金會談判,希望獲得所有提交者的知識產權批准,以便將項目移至Maven。經過努力,在2016年下半年,代碼登陸為Maven Resolver。

但是代碼不會停滯。自3.3.9起,委員會對Maven進行了其他更改,並且整合測試未按照項目約定進行更新。最初的目標是使用Resolver無需其他重大更改來提供基準即可發布Maven。but現在看來這個目標已經不太可能了。

2017年1月份,終於對外公布所謂艱難的決定:所有內容重新設置為3.3.9,並在每個功能中逐一整合,理想情況是在主要支持的平台上做全面的運行測試:Linux和Windows,Java 7和8。

在企業環境中,你可能會花錢去重建14個月發展歷程的子集。但Apache基金會是建立在志願者身上的,Maven項目提交者都是在業餘時間從事該項目的志願者。

它需要的是讓這些志願者并行準備各種功能,同時確保他們從CI伺服器獲得反饋,以便在功能分支合併到主伺服器之前,重構一個測試運行的優良信心。

引入Jenkins pipeline多支撐和Jenkins文件方面。一個Jenkinsfile設置應做到以下幾點:

  • 確定集成測試庫相應分支的集成測試版本(如果沒有相應的分支,則返回到主分支)。

  • 檢查Maven本身並使用基準Java版本(Java 7)構建它,記錄單元測試結果。

  • 在Windows和Linux構建代理程序中并行使用Java 7和Java 8,檢查集成測試的單個版本,並針對Maven發行版執行這些測試,記錄所有結果。

有很多的Jenkins文件增強計劃(如轉移到聲明性的語法),但即便這樣,我們也能夠在所有約定的範圍合併和削減兩個發布候選。

工作流程如下:

  • 開發開始在本地分支機構進行更改。

  • 他們認識到需要進行一些新的集成測試,因此在集成測試庫中創建一個具有相同名稱的分支。

  • 當開發準備好做全面的測試運行時,他們就會推動集成測試分支(集成測試必須先在當前推出),然後推動核心分支。

  • Apache GitPubSub事件通知系統向所有活動訂閱者發送提交通知。

  • Apache Jenkins伺服器是GitPubSub的活動訂閱者,並將推送細節發布到SCM API 插件的事件系統中。

  • Pipeline Multibranch插件為新分支創建一個分支項目,並觸發構建。

  • 一般情況下,構建在開發推送提交的五秒鐘內啟動。

  • 隨著集成測試并行跑起來,開發可以儘快獲得構建結果。

  • 分支建立成功且合併后,就刪除該分支。

  • GitPubSub發送分支刪除事件,Jenkins將分支作業標記為已禁用(我們保留最後三個已刪除的分支,以防任何人對構建結果有異議)

在整個系列事件中,大家的一致共識:多分支項目是對以前模式的重大改進。

▼點擊原文,查看我更多精彩內容!



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦