介紹
- SonarQube
* 官網: https://www.sonarqube.org/
* 介紹:(曾用名Sonar(聲納)是一個開源的代碼質量管理系統。 複製代碼
- SonarQube 特徵
* 支持超過25種編程語言:Java、C/C++、C#、PHP、Flex、Groovy、JavaScript、Python、PL/SQL、COBOL等。(不過有些是商業軟件插件)
* 能夠在Android開發中使用
* 提供重複代碼、編碼標準、單元測試、代碼覆蓋率、代碼複雜度、潛在Bug、註釋和軟件設計報告
* 提供了指標歷史記錄、計劃圖(「時間機器」)和微分查看
* 提供了徹底自動化的分析:與Maven、Ant、Gradle和持續集成工具(Atlassian Bamboo、Jenkins、Hudson等)* 與Eclipse開發環境集成
* 與JIRA、Mantis、LDAP、Fortify等外部工具集
* 支持擴展插件
* 利用SQALE計算技術債務
* 支持Tomcat。不過計劃從SonarQube 4.1起終止對Tomcat的支持。
複製代碼
安裝
- 依然使用docker image 部署
- 若是沒有安裝docker 請參考這篇博客
- 啓動
docker run -d --name sonarqube \
-p 9000:9000 -p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=sonar \
-e SONARQUBE_JDBC_URL=jdbc:mysql://192.168.199.131:3306/tryspread?useUnicode=true&characterEncoding=utf-8 \
sonarqube複製代碼
- 訪問。http://ip:9000
![](https://user-gold-cdn.xitu.io/2019/10/9/16daf6f3f6dd66c9?w=2902&h=1686&f=png&s=112411)複製代碼
項目中使用
使用方式1
- maven setting.xml 設置
2. pom添加插件複製代碼
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.3.0.603</version>
</plugin>複製代碼
- 使用。執行 mvn sonar:sonar 便可
使用方式2
- pom添加插件
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.3.0.603</version>
</plugin>
2. 使用默認的賬號登陸以後,能夠:
* 生成一個代替賬號的`token`
* 修改一個`admin`的密碼
* 能夠在`Administration`=>`System`=>`Update Center`,安裝中文插件和其它要分析的語言的插件複製代碼
- 執行
mvn clean package sonar:sonar \
-Dsonar.host.url=http://localhost:9000 \ //此處是sonar控制檯訪問地址
-Dsonar.login=token //token 是登錄到sonar後本身設置的token 複製代碼
或者複製代碼
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package \
-Dmaven.test.failure.ignore=true \
deploy \
sonar:sonar -Dsonar.host.url=http://192.168.199.131:9000 -Dsonar.login=2feb1b65a2224c9cb6744f35a7e45988e3443af6
複製代碼
觀察
![](https://user-gold-cdn.xitu.io/2019/10/9/16daf6f477cc2e5b?w=3312&h=1606&f=png&s=74856)複製代碼
實時code review
* 插件:SonarLint複製代碼
* 官網:http://www.sonarlint.org/intellij/複製代碼
- 關於SonarQube經常使用設置,下個博客再講。
如感受文章對你有所幫助,能夠關注微信公衆號鼓勵一下