赞
踩
2.1.安装环境介绍
注意:sonar服务器至少需要2G的内存才能有效运行,而操作系统则需要1GB的可用内存。
Centos 7.2
安装JDK 1.8
安装Jenkins 2.89
安装 maven 3.5.2(非必需,用于编译一些插件)
安装mysql 5.6 数据库 (要求版本,不低于5.6)
安装完mysql后创建sonar数据库和账号,方式如下:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
cd /data/package/
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.6.zip
mkdir /data/service/sonar/
unzip sonarqube-6.6.zip -d /data/service/sonar/
配置启动脚本:
[root@c7-node1 ~]# cat /etc/init.d/sonar #!/bin/sh # # rc file for SonarQube # # chkconfig: 345 96 10 # description: SonarQube system (www.sonarsource.org) # ### BEGIN INIT INFO # Provides: sonar # Required-Start: $network # Required-Stop: $network # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: SonarQube system (www.sonarsource.org) # Description: SonarQube system (www.sonarsource.org) ### END INIT INFO /usr/bin/sonar $*
授权启动脚本执行权限,并配置路径
chmod +x /etc/init.d/sonar
ln -s /data/service/sonar/sonarqube-6.6/bin/linux-x86-64/sonar.sh /usr/bin/sonar
chkconfig sonar on
修改配置文件
[root@c7-node1 ~]# cd /data/service/sonar/sonarqube-6.6/conf/
[root@c7-node1 conf]# cp sonar.properties{,.bak}
sonar.jdbc.username=sonar
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
2.3.sonarQube Scanner 安装
cd /data/package/
wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip
unzip sonar-scanner-2.8.zip -d /data/service/sonar/
ln -s /data/service/sonar/sonar-scanner-2.8/bin/sonar-scanner /usr/bin/sonar-scanner
修改配置文件
[root@c7-node1 ~]# cd /data/service/sonar/sonar-scanner-2.8/conf/
[root@c7-node1 conf]# cp sonar-scanner.properties{,.bak}
[root@c7-node1 conf]# vim sonar-scanner.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
cd /data/service/
wget http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
unzip sonar-runner-dist-2.4.zip -d /data/service/sonar/
ln -s /data/service/sonar/sonar-runner-2.4/bin/sonar-runner /usr/bin/sonar-runner
修改配置文件
[root@c7-node1 ~]# cd /data/service/sonar/sonar-runner-2.4/conf/
[root@c7-node1 conf]# cp sonar-runner.properties{,.bak}
[root@c7-node1 conf]# vim sonar-runner.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.username=sonar
sonar.jdbc.password=123456
添加环境变量
[root@c7-node1 ~]# vim /etc/profile.d/sonar.sh
export SONAR_HOME=/data/service/sonar/sonarqube-6.6
export SONAR_RUNNER_HOME=/data/service/sonar/sonar-runner-2.4
export PATH=$SONAR_RUNNER_HOME/bin:$PATH
[root@c7-node1 ~]# source /etc/profile.d/sonar.sh
注意:sonar默认不允许使用root用户启动,所以我们需要创建sonar用户,并以sonar用户启动
[root@c7-node1 ~]# useradd sonar
[root@c7-node1 ~]# chown -R sonar:sonar /data/service/sonar/
[root@c7-node1 ~]# su sonar
[sonar@c7-node1 root]$ /etc/init.d/sonar start
sonar启动成功后,访问服务器的9000端口即可打开sonar的web界面,默认账号和密码为admin:admin注意:sonar默认不允许使用root用户启动,所以我们需要创建sonar用户,并以sonar用户启动。
出现如下页面说明sonar安装成功,如果sonar安装失败,则根据日志报错内容进行排查即可。
Sonar可以通过安装插件的方式来扩展自己的功能,具体信息可以访问sonar的插件库,里面提供了众多代码分析插件,认证授权插件,外部分析插件,语言插件,可视化/报告插件等。下面我们就通过安装sonar等中文插件来演示sonar插件的安装。
sonar的插件库:https://docs.sonarqube.org/display/PLUG/Plugin+Library
3.1.后台安装中文插件
登陆sonar后,在Administration–>System–>Update Center–>Available中搜索Chinese就可以看到中文插件包,点击install即可安装。但是安装时间非常慢,甚至还会失败,建议还是手动安装。
3.2.手动安装插件
中文插件github地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh
我们把中文插件源码下载到我们本地,并且切换到相应的版本(我安装的sonar6.6版本,需要切换到1.18tag),进行编译
git clone https://github.com/SonarQubeCommunity/sonar-l10n-zh.git
cd sonar-l10n-zh/
git checkout sonar-l10n-zh-plugin-1.18
mvn package
cp target/sonar-l10n-zh-plugin-1.18-SNAPSHOT.jar /data/service/sonar/sonarqube-6.6/extensions/plugins/
复制中文插件到sonar插件目录后,重启sonar生效
重启sonar后,访问web验证效果,可以看到汉化成功了
这样我们的中文插件就完成安装了,如果需要安装其它的插件,可以直接访问官方插件库进行寻找安装。
Sonar 安装汉化完成就可以用来实际的分析代码了,我准备了一个分析python代码的小例子用来演示sonar分析代码过程。
例:我的python项目是使用3.0版本开发,但是使用了2.0的语法,我们试试sonar能不能分析出来(sonar内置了python 3.0分析插件,我们无须额外安装)。演示脚本就一个,功能为发送邮件,其中的print为2.0语法,在3.0环境下是无法正常运行的,我们通过分析这个脚本,来演示sonar的分析代码过程。
[sonar@c7-node1 ~]$ cat python_test/sendEmail.py #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib from email.mime.text import MIMEText from email.header import Header # 第三方 SMTP 服务 mail_host="xxx" #设置服务器 mail_user="xxx" #用户名 mail_pass="xxx" #口令 sender = 'bigdata_monitor@xueleyun.com' receivers = sys.argv[1] content=sys.argv[3] message = MIMEText(content, 'plain', 'utf-8') message['From'] = Header(sender, 'utf-8') message['To'] = Header(receivers, 'utf-8') ![img](https://img-blog.csdnimg.cn/img_convert/7df22b9da4e76f44e5eeb6d663adfa1b.png) ![img](https://img-blog.csdnimg.cn/img_convert/e5c5f7e0b9bc8fc17296bd3d2cf9266c.png) ![img](https://img-blog.csdnimg.cn/img_convert/c09d5445a34976a50163c8086d692c10.png) **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!** message['To'] = Header(receivers, 'utf-8') [外链图片转存中...(img-PACIsOcB-1719238378253)] [外链图片转存中...(img-ZLwQKBIB-1719238378253)] [外链图片转存中...(img-wm9Hsitk-1719238378253)] **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。