java - 怎么將代碼檢查前置?
問題描述
目前我所了解的代碼檢查,一般都是在持續(xù)集成階段來做。這么做雖然能夠保證代碼質(zhì)量,但個人認(rèn)為依然成本有點大主要體現(xiàn)在:一個開發(fā)人員好不容易在自己分支上開發(fā)完成,然后push到服務(wù)器上,然后持續(xù)集成檢查代碼,發(fā)現(xiàn)代碼風(fēng)格不通過,這整個過程反饋的時間過長了。
目前開發(fā)的java項目希望能將代碼檢查如(checkstyle,pmd等)這些檢查必須在本地提交前通過檢查,而不是在push到代碼倉庫之后再做,希望達(dá)到的目標(biāo)如下:
提交前必須通過代碼檢查,否則不允許提交
最好有工具支持,且不要依賴于IDE
代碼檢查工具的配置文件最好能做版本管理
目前想到的解決方案(還未嘗試):在maven中集成checkstyle等插件在git/hooks中用腳本調(diào)用maven 進(jìn)行驗證,驗證通過提交,失敗則不允許提交
問題解答
回答1:可以讓開發(fā)人員只push到某個不能發(fā)布的分支(例如dev),而正式發(fā)布的分支(例如master)開發(fā)人員是無權(quán)直接push的。
在服務(wù)器上安裝checkstyle等插件,如果檢查通過就把dev合并到master,檢查不通過就不允許合并。
回答2:你已正解,git hook就是用來做這些事的
回答3:我們是用sonar qube做的檢查,配合jenkins在持續(xù)集成時檢查。
不規(guī)定必須檢查通過才能提交,因為我們給開發(fā)人員后面修改的時間。
個人認(rèn)為,只要代碼可編譯、單元測試、集成測試都通過之后,就可以發(fā)布。代碼檢查出來的問題可以放到下一個版本迭代里去做,開發(fā)組長盯著開發(fā)人員修改就行了。
相關(guān)文章:
1. 百度地圖 - Android app中準(zhǔn)備接入地圖sdk,百度VS高德哪個好一點?2. mongoDB批量插入文檔時,運行下面代碼,用MongoVUE查看數(shù)據(jù)庫,mongo庫中只存在一個文檔?不應(yīng)該是20個嗎?3. 百度地圖api - Android百度地圖SDK,MapView上層按鈕可見卻不可觸,怎么解決?4. css - 小程序canvas環(huán)形進(jìn)度條5. javascript - 請問如何在pc端網(wǎng)站調(diào)用微信支付的接口6. javascript - html5的data屬性怎么指定一個function函數(shù)呢?7. javascript - 關(guān)于這組數(shù)據(jù)如何實現(xiàn) 按字母列表分類展示 不改動數(shù)據(jù)結(jié)構(gòu)8. html5 - ajax post請求后如何渲染到頁面上9. html - sumlime text3代碼自動補(bǔ)全功能問題!10. css 選擇器 帶有 readonly 屬性 的<input> 怎么定位呢?
