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的规则,但是其规则为空,然后选择激活更多的规则,激活需要的规则即可,如果存在父子关系,那么两个配置下的规则也存在继承关系。

 

posted @ 2020-06-11 09:27  定静沉行  阅读(2050)  评论(0编辑  收藏  举报