1. 下載
可以有很多種方式使用sonarqube分析,這裏列舉幾種:
- 使用Maven命令分析
- 使用IDEA插件
- 使用Sonarqube Scanner掃描工具
博主這裏介紹第一種方式:
下載sonarqube-7.7
鏈接:https://pan.baidu.com/s/1NDY145lVGKWJOQnL3brHiw
提取碼:pt4h
博主使用環境是Windows,所以:
解壓後,運行\bin\windows-x86-64\StartSonar.bat
瀏覽器訪問http://localhost:9000
能夠成功訪問頁面即安裝成功:右側有登錄按鍵,默認用戶admin,密碼admin
2. 配置MySQL數據庫
注意再sonarqube-7.7下,MySQL的版本爲5.6<=x<8.0。
- 使用root用戶登錄數據庫,創建數據庫和新用戶:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
flush privileges;
- 設置sonarqube配置文件
sonarqube-7.7\conf\sonar.properties
去掉前面的# 號,寫上用戶名和密碼:
- 重啓sonarqube
這一步博主不確定是否關閉其中一個還是所有都關閉,纔是真正的關閉了sonarqube,你可以挨個嘗試關閉:
第一個:ctrl + c 關閉
第二個:sonarqube的界面有一個重啓選項,但是博主點擊重啓會卡死,你可以嘗試
第三個:任務管理器後臺服務,結束這些服務即可
注意:
配置了MySQL後,可能下一次的啓動會出現這樣的情況,並且卡在這裏,訪問http://localhost:9000 提示需要升級數據庫:
解決辦法:
訪問:http://localhost:9000/setup,按照提示升級即可,然後按照上面的步驟重啓sonarqube。
同時,如果連接順利你可以在數據庫看到相關內容:
3. 配置Maven和項目
- 在你Maven的安裝路徑下,settings.xml文件中添加如下內容:
注意添加的位置(因爲博主有配置其他內容,行數可能不準確,注意找到對應爲止):
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://localhost:9000
</sonar.host.url>
</properties>
</profile>
- 首先你需要有一個Maven項目(這裏就不演示了,並且確保裏面有運行代碼),在pom.xml 中添加內容:
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
</plugins>
</build>
項目根目錄或者resources目錄創建sonar-project.properties(不過感覺沒起作用啊),內容如下:
sonar-project.properties
# must be unique in a given SonarQube instance
# 改爲你自己的
sonar.projectKey=jindouyun
# --- optional properties ---
# defaults to project key
# 改爲你自己的
sonar.projectName=jindouyun
# defaults to 'not provided'
#sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Defaults to .
sonar.sources=src
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
4. Maven命令運行
在項目路徑下運行:
有兩條命令,直接運行第二天命令即可出結果,但是無法分析出測試代碼覆蓋率,所以需要分別執行兩條命令:
不過,博主這裏用的是一個成品項目,執行第一條命令會卡死。。。。
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true
mvn sonar:sonar
執行第二條命令構建成功如下,訪問黃框內的鏈接:
你可以看到,其他信息已經分析出來,但是單元測試並沒有分析出來:
若有錯誤,請指正!
參考:
官網:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/
https://blog.csdn.net/weixin_40861707/article/details/82117232#commentBox
https://www.jianshu.com/p/e384595d0b14