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服务器。
![](http://upload-images.jianshu.io/upload_images/401663-0f5145b702d3a9b8.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
操作流程
myaql5.7
- 配置my.ini文件
basedir = D:\\mysql-5.7.17-win32
datadir = D:\\mysql-5.7.17-win32\\data
port = 3306
-
进行初始化操作
直接安装启动发现如下错误:
启动失败
应首先进行初始化操作才能正常
> mysqld --initialize
> mysqld --install
> net start mysql
- 修改初始化root密码
修改my.ini,在[mysqld]下增加
skip-grant-tables
重启mysql服务
> mysql
mysql> use mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('123456') where USER='root';
mysql> flush privileges;
mysql> quit;
重新进行登录
> mysql -u root -p
123456
mysql> set password = password('123456');
终于修改成功了!感觉好复杂!!!
启动Sonar
修改配置文件
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.web.context=/sonar
sonar.web.port=9881
- 下载中文插件
使用管理者登录系统:默认admin/admin
在配置->系统->更新中心中可以安装中文插件:查询chinese即可安装 - 配置数据库
使用Mysql,版本必须在5.5以上,使用innodb引擎。在配置文件中增加如下的内容
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文件,增加如下的内容:
<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://localhost:9881/sonar
</sonar.host.url>
</properties>
</profile>
</profiles>
- 工程pom.xml文件中增加如下内容
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.language>java</sonar.language>
</properties>
- 进行代码检查
mvn clean install -sC:\Users\Administrator\.m2\settings-sonar.xml
mvn sonar:sonar -sC:\Users\Administrator\.m2\settings-sonar.xml
-
在浏览器中查看执行结果
执行结果