參考:javascript
一、https://segmentfault.com/a/1190000008659108php
二、https://docs.sonarqube.org/display/DEV/Adding+Coding+Rulesjava
三、https://docs.sonarqube.org/display/DEV/Adding+Coding+Rules+using+Javagit
四、https://docs.sonarqube.org/display/PLUG/Writing+Custom+Java+Rules+101github
有兩種方式能夠擴展代碼規則:可是Java只支持方式1web
一、Writing coding rules using Java via a SonarQube pluginsegmentfault
二、Adding XPath rules directly through the SonarQube web interfacemaven
Writing coding rules in Java is a six-step process:ide
下面詳述這個過程:函數
一、把項目拉到本地
git clone git@github.com:shengulong/sonar-custom-rules-examples.git
二、裏面有cobol/java/javascript/php/rpg的自定義規則,咱們只關注java的
三、使用intellij idea打開項目java-custom-rules(github上,我已經調試經過)。這是一個maven項目的模板。
四、修改下pom文件:sonar的版本以及對應的java插件版本,這樣sonar6.0以上版本均可以用這個插件
1 <properties> 2 <!--<sonar.version>6.3</sonar.version>--> 3 <sonar.version>6.0</sonar.version> 4 <!-- this 6.3 is only required to be compliant with SonarLint and it is required 5 even if you just want to be compliant with SonarQube 5.6 --> 6 <!--<java.plugin.version>4.7.1.9272</java.plugin.version>--> 7 <java.plugin.version>4.5.0.8398</java.plugin.version> 8 <sslr.version>1.21</sslr.version> 9 <gson.version>2.6.2</gson.version> 10 </properties>
五、修改下文件,由於最初下載的報編譯錯誤