代碼提交預校驗
隨着代碼量的提升,代碼的質量管理也是必不可少的。代碼的規範性與軟件缺陷是有緊密聯繫的,質量高的代碼將直接提高軟件的質量。
通過svnserver1.6.9+svnchecker0.3+checkstyle5.2的集成,達到svn在代碼提交的時候,做一些靜態代碼規範的校驗,提高代碼質量。
預期不規範的代碼在svn提交時,會提示對應代碼的錯誤信息。
結構圖
Subversion安裝
<提示:Svnserver的安裝相信大家都做過, 直接忽略。>
Subversion集成svnchecker
SVNChecker是一個開源的檢查框架,他可以做各種檢查(不僅僅是代碼規範性),並針對各種檢查匹配處理模塊。
也就是說目前雖然只是進行“代碼規範性檢查”,但是加入SVNChecker後,今後若想進行其他檢查,就可以輕而易舉的擴展了。
以“提交”事件舉例,當提交事件發生之前將執行hooks中的pre-commit腳本,提交事件之後將執行hooks中的post-commit腳本。
於是我們就可以在pre-commit腳本里加入SVNChecker的執行命令。
集成方法
將Subversion倉庫目錄hooks下的文件pre-commit.tmpl重命名爲pre-commit。
修改pre-commit的腳本如下:(svnchecker-0.3目錄以實際爲準)
svnchecker集成checkstyle
CheckStyle是SourceForge下的一個項目,提供了一個幫助JAVA開發人員遵守某些編碼規範的工具。
它能夠自動化代碼規範檢查過程,從而使得開發人員從這項重要,但是枯燥的任務中解脫出來。
其中checkstyle的文件checkstyle_checks.xml是對Java代碼規範的定義(以後主要是對該文件的維護,此處使用以華爲的checkstyle.xml爲基礎修改的配置文件)。
此處只開啓部分的校驗,可以隨着代碼質量的提升而漸漸放開,加入校驗。
集成方法
下載並安裝CheckStyle(使用版本:5.2)
checkstyle5.2下載-已配置
其中checkstyle-5.2-all.jar爲供svnchecker調用的jar文件,checkstyle_checks.xml是對Java代碼規範的定義(以後主要是對該文件的維護)。
注意:需要賦予checkstyle-5.2-all.jar可執行的權限
下載並安裝svnchecker(使用版本:0.3)
svnchecker0.3下載-已配置
注意:需要賦予Main.py和modules下所有文件可執行的權限。
定義文件svncheckerconfig.ini配置svnchecker
svncheckerconfig.ini文件是svnchecker的配置文件。但svnchecker中並未定義該文件,需要用戶自己創建。
其位置可以放在svnchecker根目錄(全局配置)或者svn資源庫的hooks目錄下(當前項目配置)。
效果展示
每次提交代碼都要求寫提交log,報錯如下:
包名要求全部小寫,類名要求首字母大寫,報錯如下: