持续集成 Sonar 平台搭建及 Sonar 自定义规则打包部署篇

CC · 2017年07月14日 · 最后由 向阳 回复于 2019年01月04日 · 3024 次阅读
本帖已被设为精华帖!

引言

基于阿里开发手册的 sonar 自定义插件工程 开源地址: https://github.com/tigerge000/sonar-java-custom-rules.git
由于最近来问童鞋,就算写出了 Demo,但部署到 sonar 平台后,运行还是出现各种问题,因此我这边把 sonar 平台部署,插件打包,插件导入等一些列重新补一篇
sonar 自定义插件开发文章: https://testerhome.com/topics/8105

Linux 下安装 Sonar

下载地址: https://www.sonarqube.org/downloads/
安装环境说明:
服务器:192.168.3.14
已安装 mysql+java+maven+git
项目存储路径: /home/admin/testrelease/

sonar 环境配置

(一) 修改 mysql 配置文件

default-storage-engine=INNODB
innodb_buffer_pool_size=256M
innodb_log_file_size=256M
max_allowed_packet=100M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

重启 mysql
service mysql restart

(二) 新建 sonar 数据库

安装 sonarqube

unzip sonarqube-6.2.zip
cp -r sonarqube-6.2 /usr/local

(一) 修改 sonarqube 配置文件

(二) 启动服务

路径:/usr/local/sonarqube-6.2/bin/linux-x86-64
[root@tuotuonet-14 linux-x86-64]# ./sonar.sh start

sonar-runner 配置

插件地址:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
(1) 修改配置文件 sonar-scanner.properties
/usr/local/sonar-scanner-2.8/conf/sonar-scanner.properties

设置环境变量

[root@tuotuonet-14 src]# vi /etc/profile

##【验证】测试 SonarJava:

1.下载 solo-server 项目, 在根目录中新建:

sonar-project.properties,以下配置针对多项目结构的工程

2.开始分析

输入: sonar-scanner

3.结果展示

[自定义] 插件导入:

1.打包插件:

打包命令: mvn clean && mvn package -Dmaven.test.skip=true

2.把 jar 放置到 sonar 插件目录:

3.重启 sonar 服务:sonar.sh restart

4.查看 sonar 质量规则,可以看到我们新增的插件规则:



启动服务:[root@tuotuonet-14 src]# sonar.sh start | stop | restart

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 17 条回复 时间 点赞

赞一个,楼主自己写的 sonar 规则啊?

CC #2 · 2017年07月14日 Author
白纸 回复

思寒_seveniruby 将本帖设为了精华贴 07月14日 19:58

厉害,自己写规则需要对编码非常熟悉啊

5楼 已删除
CC 回复

刚导入你的项目,打包后放入 sonar, 然后乱码,失败. 是因为 我没有用 sonar-scanner 的原因吗?
因为我的 config 只有 sonar.properties

CC #7 · 2017年08月04日 Author

#5 楼 @nateby 真的?难得啊,我的头像保持了 10 多年了

—— 来自 TesterHome 官方 安卓客户端

CC #19 · 2017年08月04日 Author

#6 楼 @zhupengfarmer 😢自己琢磨下吧,环境这种东西有可能因为版本或者缺少啥的出乱子的

—— 来自 TesterHome 官方 安卓客户端

LZ,你好,怎么在 linux 下找不到重启 sonar 的 shell 文件?

楼主知道怎么编写规则吗

楼主写过 C# 的规则没?

楼主我打包成功以后,在配置里有,但是质量配置配置里面没有这些规则,能请教一下为什么吗?我 sonar6.7.2

楼主有没有扫描 iOS 的项目?
想请教一下,使用 oclint 对 iOS 的扫描,能否扫描出 bugs、漏洞来?

我分别搭建了 iOS 和 Android 的扫描项目,Android 的各种问题扫描出来比较正常,但是 iOS 的 bugs、漏洞数量都是 0。如下图:

请问各位大神,为什么我的自定义规则按照官方文档部署到 sonarqube 上,可就是不生效,应该怎么处理

我把规则打包导入重启后,规则里还是没有增加

@wanghaibin @Song 添加完自定义的规则后,是不是没找对具体的位置

CC #10 · 2019年01月04日 Author
向阳 回复


你看下这里有没有?如果也没有,看看 sonar 启动加载日志

@ 飞狐 找到了 感谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册