介绍
-
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
项目中使用
使用方式 1
-
maven setting.xml 设置
![](https://image-static.segmentfault.com/358/780/3587808904-5d9d8d7d62dd8_articlex)
-
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>
-
使用默认的帐号登录之后, 可以:
- 生成一个代替帐号的
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://image-static.segmentfault.com/307/123/3071231323-5d9d8d821b2ef_articlex)
实时 code review
* 插件:SonarLint
* 官网:http://www.sonarlint.org/intellij/
- 关于 SonarQube 常用设置,下个博客再讲。
如感觉文章对你有所帮助,可以关注微信公众号鼓励一下