.net 基於Jenkins的自動構建系統開發
阿新 • • 發佈:2019-01-28
先讓我給描述一下怎麼叫一個自動構建或者說是持續整合 :
就拿一個B/S系統的合作開發來說,在用SVN版本控制的情況下,每個人完成自己程式碼的編寫,階段性提交程式碼,然後測試-修改,最後到所有程式碼完工,進行總的測試-修改,最後釋出測試。往往在最後釋出階段,會集中出現好多問題,並且這樣的問題不好解決,因為最後一次的測試,前些階段隱藏的問題就都暴露出來了!
持續自動構建就是要解決這個問題!
首先我們用到的工具有:
1.SVN
2.Jenkins
3.MSBuild
4.HMailSever
5.Nexus
SVN:它的主要用途就是整合專案程式碼,將團隊開發的程式,集合到一起,起到一個統一整合程式的作用!例如,將三層架構中每層的程式碼,提交到一個版本庫。同時,還起到一個備份作用,也就是說,在我們的每一次提交,對版本庫的每一次改動,都會由它在其他地方再去備份一個一模一樣的版本庫,這樣就是使得我們的原始碼非常安全。(備份資料,這可是老師經常教導,常重灌系統的童鞋都清楚!)
Jenkins:現在只知道這是一個非常強大的框架,只需要明白,它完成的任務是:載入源程式程式碼,在我們的自動構建中,是從SVN的版本庫中載入,當然還可以通過別的路徑載入。自動編譯、釋出、報錯,按照完整的釋出步驟自動執行,最後報告測試結果,Jenkins,非常人性化,他可以把結果,以郵件的方式反饋結果。
MSBuild:Jenkins針對每種開發環境,都有其相應的外掛來完成測試。在.NET環境下,這個功能是靠MSBuild來實現。
這兩個的關係就是:首先要安裝上Jenkins,然後安裝該外掛,才能完成.NET程式的自動構建測試。
HmailSever:這是一個郵件伺服器。它的作用是,在沒有外網的情況下,設定自己的郵件伺服器,相當於自己建了一個“163郵箱”,完成郵件的溝通。既然Jenkins提供了郵件提醒功能,就不得不好好利用了。有些專案的開發,需要關閉外網,有了它就解決了郵件的收發。
Nexus:是一個私服器,發揮著中介功能,提供各個伺服器之間的連線。要想在不提供外網的條件下,完成自控構建、編譯、釋出測試,是少不了它的。
通過這些工具,在團隊開發中,只需我們完成每個小階段的程式設計後,向SVN提交,通過Jenkins馬上就能知道釋出後的結果(哈哈哈,坐等郵件就OK 嘍!)。這就避免了,最後整合的時候因為修改BUG而焦頭爛額了。