jenkins的历史
Jenkins的前身是Hudson,采用JAVA編寫的持續集成開源工具。Hudson由Sun公司在2004年啟動,第一個版本于2005年在java.net發布。2007年開始Hudson逐漸取代CruiseControl和其他的開源構建工具的江湖地位。在2008年的JavaOne大會上在開發者解決方案中獲得杜克選擇大獎(Duke's Choice Award)。
在2010年11月期間,因為Oracle對Sun的收購帶來了Hudson的所有權問題。主要的項目貢獻者和Oracle之間,盡管達成了很多協議,但有個關鍵問題就是商標名稱“Hudson”。甲骨文在2010年12月聲明擁有該名稱并申請商標的權利。 因此,2011年1月11日,有人要求投票將項目名稱從“Hudson”改為“Jenkins”。2011年1月29日,該建議得到社區投票的批準,創建了Jenkins項目。
2011年2月1日,甲骨文表示,他們打算繼續開發Hudson,并認為Jenkins只是一個分支,而不是重命名。因此,Jenkins和Hudson繼續作為兩個獨立的項目,每個都認為對方是自己的分支。到2013年12月,GitHub上的Jenkins擁有567個項目成員和約1,100個公共倉庫,與此相對的Hudson有32個項目成員和17個公共倉庫。到現在兩者的差異更多,應該說Jenkins已經全面超越了Hudson。此外,大家可能是出于討厭Oracle的情緒,作為Java開發者天然地應該支持和使用Jenkins。
從上面兩個項目的logo,大家也可以看到兩個項目之間的親戚關系,都是兩個老頭。左邊的是Jenkins,右邊是Hudson。后面Hudson被Oracle捐給了Eclipse基金會,所以右邊這老頭有個Eclipse的光環加持。
下面討論一下起源相同的兩個CI工具,為什么Jenkins更受大家歡迎。
由開發者主導、面向開發者
首先,曾經是Hudson開發人員中的99%都轉向了Jenkins的開發,其中包括最初的創建者川口清子(Kohsuke Kawaguchi)。他獨自寫了大部分代碼,并且他的經驗是Hudson各種高級特性的關鍵來源。Jenkins的開發社區更活躍。所以對很多人而言,從血統上看Hudson是后娘養的,Jenkins才是親生的!
治理和社區
Jenkins開發社區的管理是很開放的。 有一個獨立的董事會,其中包括來自Yahoo!, CloudBees,Cloudera和Apture等多家公司的長期以來的Hudson開發人員。每次會議后,他們定期舉行治理會議并發表意見,征詢公眾意見。他們還將所有代碼都捐贈給公共利益軟件組織(SPI),以確保社區持續開放。
穩定性
分手后,針對Jenkins的貢獻不斷持續增加,Jenkins制定了新的長期支持發布線。社區定大約每三個月發布一次穩定版本的補丁。
插件的平臺
Jenkins支持超過1000個插件。憑借多樣而強大的插件Jenkins成了整個開發生命周期中的一個中心點。
到了2017年,兩者的發展差異更大了。Jenkins應該說是CI工具中公認的老大,而Hudson不僅不能與Jenkins比,跟其他CI工具比也沒什么優勢,完全沉淪了。
slant網站對一系列CI工具做了一次對比,其中Jenkins和Hudson的情況如下。
1、基本面問題
| 最好的CI工具 | 1 | 22 |
| 最好的JAVA CI工具 | 1 | 7 |
| 最好的自托管CI工具 | 3 | 4 |
2、其他支持
| 對Window支持最好 | 1 | 無排名 |
| 最好的開源CI工具 | 1 | 無排名 |
| 對BitBucket的支持 | 2 | 無排名 |
| 對移動開發者支持最好的CI | 4 | 無排名 |
3、更多特征
| 免費且開源 | 與Jenkins共享了很多代碼,安裝還是挺簡單的 |
| 關鍵的環境變量可以安全存儲 | ? |
| 支持多個SCM,包括SVN, Mercurial, Git。集成了GitHub和Bitbucket | ? |
| 高度可配置 | ? |
| 資源和教程很多 | ? |
| 安裝運行簡單 | ? |
| 分布式的構建也能高效運行 | ? |
| 可跨平臺部署 | ? |
| 很多高質量的插件 | ? |
| 得獎無數 | ? |
| 龐大的社區 | ? |
看完上面的介紹,Jenkins和Hudson選擇誰的問題,已經一目了然了。當然,可能有些同學在閱讀本文之前就不知道Hudson是什么,因為Hudson早已淪落了多年了。那大家就當了解了一段歷史恩怨看看吧,雖然比不上狗血的什么民國年代情感大戲。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的jenkins的历史的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: -XX:+UseParallelGC与
- 下一篇: SSH-permission denie