sonar安装及使用
Sonar安装配置:
一.安装jdk,版本在8以上,并配置环境变量
下载路径:http://www.oracle.com/technetwork/cn/java/archive-139210-zhs.html
二.下载sonarqube并解压
下载路径:https://sonarsource.bintray.com/Distribution/sonarqube/或者直接进入官网下载:https://www.sonarqube.org/downloads/
解压,进入对应的路径启动sonarqube,例如为64的Linux系统,则启动路径为:/xx/sonarqube-6.7.4/bin/linux-x86-64 ,然后执行./sonar.sh start也可以使用./sonar.sh console查看启动的日志
问题:
此处启动的时候,有可能会出现启动之后,服务又自动停掉的情况,这是由于不能使用root用户启动es的原因,所以需要创建sonarUser用户并赋权
adduser sonarUser #添加用户
passwd sonarUser #创建密码
chown -R sonarUser /xx/sonarqube(安装路径) #赋权
chown -R sonarUser /xx/jdk1.8.0_xxx(java路径) #java赋权
然后切换至创建的用户重新启动sonar
默认端口为9000,启动成功之后可以访问浏览器9000端口查看:ip:9000
启动失败常见问题:
2020.06.10 06:45:37 WARN es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
---解决办法:
#切换到root用户修改
vim /etc/security/limits.conf
# 在最后面追加下面内容
*** hard nofile 65536
*** soft nofile 65536
*** 是启动ES的用户
2020.06.10 06:45:37 WARN es[][o.e.b.BootstrapChecks] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法:
# sysctl -w vm.max_map_count=262144
这种方法会在服务器重启后失效,使用如下方法进行配置持久化:
# vim /etc/sysctl.conf
vm.max_map_count = 262144
重启之后检查配置是否生效:
# sysctl vm.max_map_count
2020.06.10 06:54:20 WARN es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
原文链接:https://blog.csdn.net/qq_36792209/article/details/103598558
2020.06.10 06:45:40 INFO es[][o.e.c.s.ClusterService] new_master {sonarqube}{5WtSSOZEQXmB-qKcyC60Rw}{iOfk5BY0SGCPWVrsqCl9Cw}{127.0.0.1}{127.0.0.1:9001}{rack_id=sonarqube}, reason: zen-disco-elected-as-master ([0] nodes joined)
/opt/sonarqube-6.7.4/conf/sonar.properties
注意:es启动失败,需要查看logs下 es.log web.log的log日志分析具体失败原因
3.添加数据库,此处以mysql为例:(要检测的项目的代码导入到数据库中)
数据库安装过程参见:https://www.cnblogs.com/bigbrotherer/p/7241845.html
并创建用户名密码,例如:
## mysql -A -uroot -pxxx
MySQL> CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'Sonar6.7';
MySQL> CREATE DATABASE sonar CHARACTER SET UTF8;
MySQL> GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost'
4.打开sonarqube安装目录下的/xx/snoar/sonarqube-xx/conf/sonar.properties文件
配置数据库的用户名密码,以及使用的数据库(当前sonar中不需要配置)
五.可以在sonar中进行汉化,使用admin/admin登录后,进入Administrator,在应用市场中搜索chinese包,直接进行安装,然后重启发现已被汉化
六.安装sonar-scanner
下载版本:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip
七.解压sonar-scanner,配置sonar-scanner的环境变量,使用sonar-runner -v查看是否安装成功
八..下载代码,在代码根目录新建sonar-project.properties文件,填写配置如下:
配置文件内容如下:
# must be unique in a given SonarQube instance
sonar.projectKey=my:project #你的项目名
# this is the name displayed in the SonarQube UI
sonar.projectName=apiautocore#你的项目名
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=src#你放所要分析代码的目录路径
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
#language
至此,安装配置工作结束,可以使用代码扫描
九.在项目根目录下 运行sonar-scannner,如果运行成功刷新http://sonarip:9000/ 下查看项目中会自动显示该项目运行分析结果
代码规则需要手动下载
SonarQube的Community版本是不支持对C语言代码进行质量分析的,Developer及以上付费版本才支持。还好有一些开源的社区插件支持,比较著名的一个就是sonar-cxx。
在如下地址下载SonarQube开源C和C++的插件
C插件:sonar-c-plugin-1.3.1.1807.jar
https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.3.1/sonar-c-plugin-1.3.1.1807.jar
C++插件:sonar-cxx-plugin-1.3.1.1807.jar
https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.3.1/sonar-cxx-plugin-1.3.1.1807.jar
将下载下来的插件放到SonarQube的安装目录中的extensions/plugins中
作者:bingfengxiao
链接:https://www.jianshu.com/p/39614530df28
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1、如果使用sonar-scanner分析出现如下错误:
ERROR: Error during SonarQube Scanner execution org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property
是由于4.12以后的soanr-java分析插件,在分析的时候提示Please provide compiled classes of your project with sonar.java.binaries property的问题
解决:
下载4.12以前的sonar-java插件即可替换至/xx/sonarqube-xx/extensions/plugins目录下,重启sonar
即可,下载路径:https://github.com/SonarSource/sonar-java
2、使用sonar分析python代码的时候,在项目路径下的sonar-project.properties文件中,分析代码不能写成python,需要填写为py才能识别,否则会一直提示需要下载python相关的插件
自定义代码规则:
sonarqube内置的规则是没办法启用禁用的
那么,你有两种选择:
1.复制一份内置的代码规则,再在它的基础上进行修改
进入质量配置,选择需要的语言,例如选择C#,点击下拉按钮,选择复制,填写名称,则该种语言下的所有规则均被复制
然后在修改配置中的规则。
在下拉框中选择比较按钮,可以查看每个配置之间的区别
配置完成后,将其设置为默认,下一次进行代码检查的时候就会使用自行创建的规则进行检测了。
2.自行创建代码规则:
进入质量配置,点击右上角的创建按钮,输入自定义名称,选择语言,例如选择java,则创建了一个java的规则,但是其规则为空,然后选择激活更多的规则,激活需要的规则即可,如果存在父子关系,那么两个配置下的规则也存在继承关系。