12 Maven-使用Hudson進行持續整合及系統配置

來源:互聯網
上載者:User

標籤:

14 Maven-監視任務、使用者管理、工作目錄

13 Maven-建立Hudson任務


12.1 持續整合的作用、過程和優勢

 簡單的說,持續整合就是快速且高頻率地自動構件項目的所有源碼,並為項目成員提供豐富的反饋資訊。
--快速:整合的速度要儘可能的快,開發人員不希望自己的代碼提交半天后才得到反饋。
--高頻率:頻率越高越好,例如每隔一個小時就是個不錯的選擇,這樣問題才能今早的反映出來。
--自動:持續整合應該是自動觸發並執行的,不應該有手工參與。
--構件:包括編譯、測試、審查、打包、部署等工作。
--所有代碼:所有團隊成員提交到程式碼程式庫裡面的最新的原始碼。
--反饋:持續整合應該通過各種快捷的方式告訴團隊成員最新的整合狀態,當整合失敗的時候,反饋包括應該儘可能地反映失敗的具體細節。
一次完整的整合往往包括以下6個步驟:
1)持續編譯:所有正式的原始碼都應該提交到源碼控制系統中(如Subversion),持續整合伺服器按一定頻率檢查源碼控制系統,如果有新的代碼,就觸發一次整合,舊的已編譯的位元組碼應當全部清除,然後伺服器編譯所有的最新的源碼。

2)持續資料庫整合:持續整合也應該包括資料庫的整合,每次發現新的SQL指令碼,就應該清理Integration Environment的資料庫,重新構建表結構,並填入預備的資料。這樣就能隨時發現指令碼的錯誤,此外,基於這些指令碼的測試環境還能進一步發現其他的相關的問題。

3)持續測試:有了JUnit之類的架構,自動化測試就成了可能。編寫優良的單元測試並不容易,好的單元測試必須是自動化的、可重複執行的、不依賴於環境的,並且能夠自我檢查的。除了單元測試,有些項目還會包含一些依賴外部環境的整合測試。所有這些測試都應該在每次整合的時候運行,並且發生問題的時候產生具體報告。

4)持續審查:諸如Checkstyle和PMD之類的工具能夠幫我們發現代碼中的壞味道(Bad Smell),持續整合可以使用這些工具來產生各類報告、Checkstyle報告和PMD報告等。這些報告的產生頻率可以低一些,如每日產生一次,當審查發現問題的時候,可以給開發人員反饋警告資訊。

5)持續部署:有些錯誤只有在部署之後才能被發現,他們往往是具體容器或者環境相關的,自動化部署能夠幫助我們儘快發現這類問題。

6)持續反饋:持續整合的最後一步的反饋,通常是一封電子郵件。在重要的時候將爭取的資訊發送給正確的人。如果開發人員一直收到與自己無關的持續整合報告,他慢慢地就會忽略這些報告。基本的規則就是:將整合失敗報告發送給這次整合相關的代碼提交者,專案經理應該收到所有的失敗報告。持續整合需要引入額外的硬體設定,特別是對於持續整合伺服器來說,效能越高,整合的速度就越快,反饋的速度也就越快。持續整合還要求開發人員使用各種工具,如源碼控制工具,自動化構建工具,自動化測試載入器,持續整合軟體等。這一切無疑增加了開發人員的負擔,然而學習並適應這些工具及流程是完全值得的,因為持續整合有著很多的好處:
   --儘早的暴露問題
   --減少重複操作
   --簡化項目發布
   --建立團隊信心


12.2 Hudson簡介
優秀的持續整合工具有很多,如老牌的開源工具CruiseControl、商業的Bamboo和TeamCity等。Hudson是目前最流行的開源持續整合工具。該項目過去一直託管在java.net社區,現在遷移到http://hudson-ci.org/。Hudson主要有Kohsuke Kawaguchi開發和維護的。


12.3 安裝Hudson
安裝Hudson是十分簡單的。需要注意的是,Hudson必須運行在JRE 1.5或者更高的版本上。可以在 http:hudson-ci.org/下載最新版本的安裝包。


最簡單的啟動Hudson的方式就是在命令列直接運行hudson.war:

$ java -jar hudson.war


Hudson的開機記錄直接輸出道命令列,待啟動完成之後,使用者就可以開啟瀏覽器輸入地址 

http://localhost:8080/ 訪問hudson的介面了:



                                                               圖3

要停止Hudson,可以在命令列按下Ctrl+c
備忘:

(1)預設情況下Hudson會在連接埠8080下運行,這可能會與使用者已有的web應用相衝突。這時,使用者可以使用

 --httpPort選項指定Hudson的運行連接埠

$ java -jar hudson.war - -httpPort=8082


(2)既然他是一個war檔案,hudson自然也就可以被部署到各種web容器中,如tomcat。(第一次進來的時候它會提示你裝一些外掛程式來更好的玩轉Hudson,建議把核心和推薦的部分安裝一下,如果都不裝的話,在最底下有個finish按鈕,點擊就能進入圖3了)


12.4 安裝 Subversion
相信這個工具大家肯定都安裝過了,這裡就不再贅述了。如果不會的,自個百度一下就行了。


12.5 Hudson的基本系統設定
在建立Hudson持續整合任務之前,使用者需要對Hudson系統做一些基本的配置,包括JDK安裝位置和Maven安裝等在內的重要訊息都必須首先配置正確。Hudson會使用這些配置好的JDK及Maven進行持續整合任務。如果要使用Ant或者Shell來持續整合項目,Ant貨Shell的安裝位置也應該預先設定正確。



在左邊功能表列中有個“系統管理”,然後單擊在右側中找到“系統設定”進入系統設定頁面



1:在這裡首先配置好JDK和Maven,找到在本地安裝的目錄即可(把自動安裝勾去掉)。如果你沒下載的話,也可以在這裡下載(把自動安裝按鈕勾上)

2:JDK的目錄就是你在環境變數中配置的 JAVA_HOME變數的值,Maoven的就是你環境變數中 MAVEN_OPTS變數的值。

3:最後單擊頁面下方的Save按鈕儲存系統設定。

12 Maven-使用Hudson進行持續整合及系統配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.