KS
Knowledge Sharing
知识分享
现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。
前言
现在很少有公司做 code review(对写好的程序做代码级检查),于是很多人在进度的压力下潦草应付,只要测试通过就算搞定。表面上看,开发速度很快,进度有保障;但实际上,这样的程序连开发者自己都很难读懂,一旦有bug,很难调试,将来维护升级都非常困难。
OK,如果你意识到没有进行 code review 有很大风险,而且你的项目已经开发了很久了,如果现在一行一行去看代码进行审核的话,可想而知是非常痛苦的一件事情,给大家推荐一款非常实用的软件SonarQube,他能帮你找出代码潜在BUG,安全漏洞,不良做法,不良规范,等等。
从现在开始,从我做起,每天进行代码审查。
SonarQube简介
sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量,对于领导来说用来审查代码质量再好不过了,当然 作为开发者使用 实时审查代码 防止代码不过关 防止被领导上级说你 再好不过了!
sonar 通过插件形式,可以支持包括:java,C#,C/C++,P/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测
sonar界面如下:
它可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题
安装准备
mysql5.7(64位) 下载地址如下:
https://dev.mysql.com/downloads/installer/
maven3 自行下载 并配置环境变量
jdk1.8(64位) 自行下载并配置环境变量
SonarQube7.0 下载地址如下
https://www.sonarqube.org/downloads/
注:sonar对版本要求很大 尤其是jdk和mysql 一定要是使用较新的版本
sonar搭建
1、配置mysql
sonar需要数据库的支持所以要安装数据库并配置
mysql的安装步骤我就不说了 这里强调一下 编码使用 utf-8
1.1、创建数据库名为 sonar
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
1.2、创建一个sonar用户并把这个用户的密码设置为soanr
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
1.3、将第二步中创建的sonar数据库的所有权限赋给第三步中创建的sonar用户
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
1.4、最重要的一步修改(此处是坑一定要修改要不然会出错)
修改mysql配置文件 my.ini
将 max_allowed_packet 的值改为150M (原来为4M 改大点就行)
找不到mysql的配置文件位置的小伙伴请把显示隐藏目录打开
我的mysql配置文件路径如下(仅供参考):
2、安装并配置SonarQube
2.1、将下载好的sonar解压到本地 目录结构如下:
启动文件在bin文件夹下
2.2、修改conf文件夹下面的 sonar.properties 文件 加入如下代码
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
如图所示:
2.3、启动SonarQube 启动文件
成功如下图:
2.4、登陆并修改中文显示
输入 localhost:9000 登陆 sonar 界面是英文 并登陆 账号 admin 密码 admin 如图所示:
登陆成功界面 如图:安装中文插件如图所示:
安装之后软件会要求重启 确认并重启 此时 sonar 已经是中文显示了
2.5、添加 svn 账号 (git 设置与之类似 如果项目并非 svn 检出 或 git 检出 那么忽略此步骤)
打开sonarqube的控制台,使用admin登录后 ,在配置->SCM->菜单中,将Disabled the SCM Sensor设置为true 或者在svn页面,设置svn的用户名和密码。
(博主为了给大家演示 将中文插件卸载 结果现在还没安装上 心里苦啊 网不好)
至此 sonar 本地环境搭建完毕
3、使用Maven集成sonar
修改在 maven 安装目录 conf文件夹下面的 settings.xml 文件 在文件中加入如下代码:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true</sonar.jdbc.url>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
如图:
在idea中使用sonar扫描项目
此时 在 sonar 运行的情况下 在 idea 的 terminal控制台下(alt+F9)执行 mvn sonar:sonar 或者 mvn clean install sonar:sonar -e 命令 即可 等待成功
温馨提示:可能会报错 什么 test 什么 博主忘记了 如果出现此错误 在项目主pom中 添加如下代码即可
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</profiles>
具体位置在 :提供参考
此时 在执行上面的命令 等待即可 等待的时间与项目大小成正比
这时 打开sonar首页(localhost:9000) 就会发现 此时项目已经被扫描 如图所示:
之后你就可以知道哪里发生了bug并进行修改了!!
在idea中安装sonar插件
sonar不仅提供以上功能 在开发中还提到警示作用 如果在开发中使用 并进行编写代码 发现bug及时处理 会提高代码的健壮性和维护性 所以 我们在idea中安装sonar插件 实时分析当前代码
1、打开 idea中 的 setting(设置) 如下图所示步骤:
此处我已经安装好 你们点 install 就好
2、重启idea
3、在idea下方工具栏中就会看到 sonarline 的字样 此时打来一个类 sonar就会对当前类进行分析 如图:
根据提示并修改代码 提高代码质量!
此时 sonar 教程到此结束 !如果有小伙伴运行发生错误 请留言进行讨论