java - 怎么將代碼檢查前置?
問題描述
目前我所了解的代碼檢查,一般都是在持續集成階段來做。這么做雖然能夠保證代碼質量,但個人認為依然成本有點大主要體現在:一個開發人員好不容易在自己分支上開發完成,然后push到服務器上,然后持續集成檢查代碼,發現代碼風格不通過,這整個過程反饋的時間過長了。
目前開發的java項目希望能將代碼檢查如(checkstyle,pmd等)這些檢查必須在本地提交前通過檢查,而不是在push到代碼倉庫之后再做,希望達到的目標如下:
提交前必須通過代碼檢查,否則不允許提交
最好有工具支持,且不要依賴于IDE
代碼檢查工具的配置文件最好能做版本管理
目前想到的解決方案(還未嘗試):在maven中集成checkstyle等插件在git/hooks中用腳本調用maven 進行驗證,驗證通過提交,失敗則不允許提交
問題解答
回答1:可以讓開發人員只push到某個不能發布的分支(例如dev),而正式發布的分支(例如master)開發人員是無權直接push的。
在服務器上安裝checkstyle等插件,如果檢查通過就把dev合并到master,檢查不通過就不允許合并。
回答2:你已正解,git hook就是用來做這些事的
回答3:我們是用sonar qube做的檢查,配合jenkins在持續集成時檢查。
不規定必須檢查通過才能提交,因為我們給開發人員后面修改的時間。
個人認為,只要代碼可編譯、單元測試、集成測試都通過之后,就可以發布。代碼檢查出來的問題可以放到下一個版本迭代里去做,開發組長盯著開發人員修改就行了。
相關文章:
1. 關于docker下的nginx壓力測試2. debian - docker依賴的aufs-tools源碼哪里可以找到啊?3. 為什么我ping不通我的docker容器呢???4. angular.js - angular內容過長展開收起效果5. javascript - webpack熱加載配置不生效6. javascript - js代碼獲取驗證碼倒計時問題7. docker start -a dockername 老是卡住,什么情況?8. 主從備份 - 跪求mysql 高可用主從方案9. dockerfile - [docker build image失敗- npm install]10. java - instance method中 static后的<K>是什么意思?
