背景
同一個 Git 項目,需要分析多個分支的代碼掃描。
說明
SonarQube Community
版本不支持多分支掃描,
SonarQube Developer Edition
及以上版本是支持多分支掃描的,掃描時指定分支參數-Dsonar.branch=develop
即可,就可以實現多分支代碼掃描。
$ mvn clean verify sonar:sonar -Dmaven.test.skip=true -Dsonar.branch=master
社區版多分支掃描
經過搜索和分析 Sonar 掃描原理,目前有2種方式可以實現。
- 開源插件:sonarqube-community-branch-plugin
- 替換 sonar.projectKey,porjectKey 相等於 Sonar 中每個項目的主鍵 ID,替換后就會以新項目創建
PS: 由於我使用的是 SonarQube 最新版本,目前開源插件還未支持,就暫時使用了第二種。
開源插件
插件地址:https://github.com/mc1arke/sonarqube-community-branch-plugin
大致操作步驟:
- 下載插件放到
${SONAR_HOME}/extensions/plugins
目錄下,重啟 Sonar。 - 掃描時,增加
-Dsonar.branch.name=${GIT_BRANCH}
即可。
替換 sonar.projectKey
掃描時,指定不同的 sonar.projectKey
即可。
# jenkins 設置 projectName,projectKey 為 job 名稱
# job 名稱規范: 工程名稱-分支名稱
$ clean verify sonar:sonar -Dmaven.test.skip=true -Dsonar.projectName=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME}
微信公眾號:daodaotest