作者:
blue3 (啦啦啦)
2014-05-03 01:21:27※ 引述《willy69wu31 (小小吳)》之銘言:
: 以往都是用 Eclipse 隨便搞搞了事
: 不過開始有越來越多的需求,尤其是程式碼管理,所以想尋找一整套整合的方案
: 不然每次一有新專案,就會有很多事項必須手動自己搞出來,有些麻煩
: 希望有:
: 1. 版本控制 (Eclipse 的 workspace 好像囊括了雜七雜八不適合直接塞 git 的檔案)
: 2. 自動編譯/打包/發行成 jar (還是,各位發行公開的 java 程式時都怎麼做?)
: 3. 自動建立單元測試
: 4. 程式碼自動格式化、變數大小寫自動檢查之類
: 5. 相依性管理,最好可以自動下載缺少的 jar 等
: 前陣子搜尋了一下,Maven 好像是一個還不錯的方案,搭配某些工具之後可以幾乎自動化
: 不過有關 Maven 的討論好少 orz (莫非有專板?)
: 不曉得各位通常都怎麼做? 有什麼建議的方案或觀念嗎?
來分享一下前公司的做法
1.版本管理:svn
2.CI: hudson http://hudson-ci.org/
3.jar management: Maven
4.issue tracking: jira
通常release的流程是這樣的
1.寫好程式, unit test, integration test, 本機用maven build過一次,
,相關project手動測試功能,確認沒問題後, commit到svn
2.svn commit會驅動hudson(或是手動驅動,或排程), 執行unit test,
integration test, 過了之後打包成jar自動放到maven
3.build完一個jar,會再驅動hudson build相關的模組, 一樣跑完unit test,
和integration test, 成功就打包放到maven
4.全部的模組都build成功了,在jira上, 附註hudson build number, 關掉issue
2,3的過程中,失敗和成功都會寄信給相關人員
通常這會是一個漫長的流程,要看你的專案到底多大,參與的開發人員有多少
公司的資源(機器)有多少。
因為隨著專案的開發,越來越多的專案和程式,都會需要經過這樣的流程
如果機器不夠,有時候光等hudson build就要排隊了。
機器不夠快,等build的過程也是個煎熬。
有時候build到最後才給你出錯,可能20, 30分鐘甚至一小時就過去了。
所以後來就跟公司要求提供build server的數量和效能。
至於maven, 你想做的(程式碼格式化等)應該都有相關的plugin可以達到
沒有的話也可以自己寫,算是擴充性蠻高的
以上,供大家參考。