目前有兩種辦法,第一種是使用SonarQube-Scanner-Maven,第二種是結合gitlab-ci進行
前提條件:已安裝並啟動sonarqube,知道訪問地址和登錄的用戶名及密碼,具體參考文檔:https://www.cnblogs.com/sanduzxcvbnm/p/15770254.html
第一種辦法:使用SonarQube-Scanner-Maven
官方文檔地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/
要求
1.maven版本:3.x (我這里使用的是3.5.4版本,配置好環境變量)
2.至少SonarQube服務器支持的最低版本的Java正在使用中,也就是最低java版本是11
我這里統一使用jdk-11.0.2版本
下載地址:https://repo.huaweicloud.com/openjdk/11.0.2/
SonarQube安裝在centos 7系統上,使用的軟件包是:openjdk-11.0.2_linux-x64_bin.tar.gz (配置好環境變量)
本機電腦是windows10系統,使用的軟件包是:openjdk-11.0.2_windows-x64_bin.zip (配置好環境變量)
maven設置
找到maven的配置文件:settings.xml,添加如下內容
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://192.168.2.161:9000 <!-- 這一行換成實際的sonarqube訪問地址 -->
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
sonarqube獲取token
登錄sonarqube,點擊右上角的用戶名,選中“我的賬號”,切換到“安全”,輸入令牌名稱,點擊生成令牌,復制這個。
分析使用命令:mvn clean verify sonar:sonar -Dsonar.login=Token
# 把Token換成上面生成的令牌
mvn clean install
mvn sonar:sonar -Dsonar.login=Token
# 使用指定版本的sonar
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar -Dsonar.login=Token
在項目根目錄下執行如下命令,就會自動拉取sonar使用的有關插件,然后進行分析,結果會在sonar的web頁面上顯示出來
第二種辦法:結合gitlab-ci進行
前提:我這邊的CI/CD工具使用的是gitlab-runner,本身項目中已經存在的有.gitlab-ci.yml文件了.
1.先登錄sonar的web頁面,點擊“項目,選擇"更多",選擇“來自GitLab”
2.輸入名稱,gitlab的api接口地址,個人token
3.輸入個人令牌
4.獲取到個人有權限管理的項目后,點擊管理,選擇使用“gitlab-ci”
5.按照頁面提示在項目文件中添加內容,完成配置
6.提交代碼到該分支,sonar的web頁面上查看效果