環境說明:
SonarQube版本:SonarQube7.6
JDK版本:1.8
插件1--集成阿里巴巴p3c規范
-
准備插件:
找到SonarQube版本對應的p3c插件
SonarQube7.6確認可用插件:https://github.com/caowenliang/sonar-pmd-p3c -
下載插件代碼並構建
>git clone https://github.com/caowenliang/sonar-pmd-p3c
>cd sonar-pmd-p3c
>mvn clean install -Dmaven.test.skip=true
- 安裝插件
注意:由於sonar-pmd-p3c是在sonar-pmd-plugin基礎上修改的。
所以如果已安裝原版本sonar-pmd-plugin,需要先刪除原插件,並將構建好的插件sonar-pmd-plugin-3.2.1.jar放到SonarQube的插件目錄extensions/plugins下
>rm -f /opt/sonarqube/extensions/plugins/sonar-pmd*
>cp sonar-pmd-p3c/target/sonar-pmd-plugin-3.2.1.jar /opt/sonarqube/extensions/plugins
-
重啟 SonarQube,在 Quality Profiles【質量配置】頁面點擊Create:
Name【名稱】自己填
Language【語言】選Java,點擊Create按鈕后,跳轉到質量配置詳情界面。 -
在詳情界面,點擊 Activate more【更多激活規則】,在 Search for rules...【搜索規則...】中搜索p3c,然后點擊 Bulk Change【批量修改】,確認Apply。
-
返回到 Quality Profiles【質量配置】頁面,將該質量配置 Set as Default【設為默認】。
插件2--plsql插件
- 下載插件sonar-plsql-open-plugin-2.4.0.jar
- 安裝並重啟SonarQube
放到${SONAR_HOME}/extensions/plugins目錄下,然后重啟SonarQube - 使用
登錄SonarQube,在 Quality Profiles【質量配置】頁面, 可以看到PL/SQL 規則已增加,如圖.
- 在實際掃描時,設置語言
sonar.language=plsqlopen
擴展:sonar Available languages,在掃描時候的配置
* Python => "py"
* CSS => "css"
* Go => "go"
* Kotlin => "kotlin"
* PL/SQL (ZPA) => "plsqlopen"
* JavaScript => "js"
* Ruby => "ruby"
* Scala => "scala"
* C# => "cs"
* Java => "java"
* HTML => "web"
* JSP => "jsp"
* Flex => "flex"
* XML => "xml"
* PHP => "php"
* TypeScript => "ts"
* VB.NET => "vbnet"
插件3--findbugs插件
- 下載插件sonar-findbugs-plugin.jar
- 安裝並重啟SonarQube
放到${SONAR_HOME}/extensions/plugins目錄下,然后重啟SonarQube - 使用
登錄SonarQube,在 Quality Profiles【質量配置】頁面, 可以看到findbugs 規則已增加,將該質量配置 Set as Default【設為默認】.
插件4--多分支掃描分析插件
說明
SonarQube Community 版本不支持多分支掃描,
SonarQube Developer Edition 及以上版本是支持多分支掃描的,掃描時指定分支參數-Dsonar.branch=develop即可,就可以實現多分支代碼掃描。
- 下載插件sonarqube-community-branch-plugin
- 安裝並重啟SonarQube
放到${SONAR_HOME}/extensions/plugins目錄下,然后重啟SonarQube - 使用
掃描時,增加參數-Dsonar.branch.name=${RANCH}即可。
//maven項目
$ mvn clean verify sonar:sonar -Dmaven.test.skip=true -Dsonar.branch=master
//非maven項目,在實際使用時可以動態生成配置文件
在sonar-project.properties文件里,增加sonar.branch.name的配置