SonarQube简单入门
Sonar
官方网站
Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。帮助文档
系统构成
SonarQube平台由4部分组成:
- SonarQube服务器
1. Web服务器的开发者,管理者,浏览质量快照和配置SonarQube实例
2.基于Elasticsearch搜索服务器从UI向后搜索
3.负责处理代码分析报告计算引擎服务器,并将其保存在数据库SonarQube - SonarQube数据库来存储
- 多个插件
- 一个或多个SonarQube Scanners:可以与CI服务进行集成
系统构成和相互关系
系统集成
1.开发人员的代码在自己的IDE和使用SonarLint运行局部分析。
2.开发人员推他们的代码到自己喜爱的供应链管理:SCM,SVN,TFVC,...
3.持续集成服务器触发自动构建和SonarQube扫描仪的运行SonarQube分析所需的执行。
4.分析报告被发送到SonarQube服务器进行处理。
5.SonarQube服务器处理和存储分析报告导致SonarQube数据库,并显示结果在UI中。
6.开发者审核,评论,挑战他们的管理,并通过SonarQube UI减少他们的技术债务问题。
7.经理收到的分析报告。 OPS使用API??从SonarQube自动化配置和提取数据。 OPS使用JMX来监控SonarQube服务器。

myaql5.7
- 配置my.ini文件
> mysqld --initialize
> mysqld --install
> net start mysql
- 修改初始化root密码
修改my.ini,在[mysqld]下增加
> mysql
mysql> use mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('123456') where USER='root';
mysql> flush privileges;
mysql> quit;
重新进行登录
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false
启动之后使用mysql数据库
示例使用
- 启动SonarQube,默认端口9000
- 下载Sonar Scanner作为客户端
- 下载演示用例子:在例子代码中执行客户端脚本
-
在web端查看结果
结果截图
- 配置文件中修改端口和应用
默认的端口为9000,应用为/,可以在配置文件中进行修改
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false
运行启动脚本,需要比较长的时间进行数据库初始化
Sonar客户端
客户端主要有:sonar-scanner
maven客户端:
- 使用自定义的mvn setting.xml文件,增加如下的内容:
>
>UTF-8 >
>java >
>
- 进行代码检查
mvn clean install -sC:\Users\Administrator\.m2\settings-sonar.xml
mvn sonar:sonar -sC:\Users\Administrator\.m2\settings-sonar.xml
-
在浏览器中查看执行结果
执行结果