Sonar安装

一、环境要求

1.需要jdk环境,关于sonar版本对应的jdk版本在下面说明,我下载的5.5版本对应jdk为1.7

2.需要数据库支持,我这里用的是mysql5.6,这些对应关系在官网上都有说明,下面截图说明

二、下载安装文件

1.官网地址:https://www.sonarqube.org/downloads/

2.下面以5.5为例:

3.还有一些其他的描述例如,需要服务器的配置,如何提高性能这上面都有建议,此处不再赘述。

4.看完这些在上一个页面点击download下载zip文件。

三、安装sonar

1.将下载的zip文件上传至服务器,不多说。

2.解压上传的zip文件,不多说。

四、配置sonar

1.在这之前需要为sonar创建一个库,如下:

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar@pw';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar@pw';
mysql> FLUSH PRIVILEGES;

2.修改sonar配置文件,如下:

# cd /opt/sonarqube-5.5/conf/

# vi sonar.properties

2.1然后找到以下5项内容,将其注释放开或修改如下:

sonar.jdbc.username=sonar            #数据库用户
sonar.jdbc.password=sonar@pw     #数据库密码
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&character    Encoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=0.0.0.0
sonar.web.port=9000

3.启动sonar

因为我的系统是linux64位所以如下,如不是则选择对应的文件夹:

# cd /opt/sonarqube-5.5/bin/linux-x86-64/

# ./sonar.sh start

3.1启动之后查看日志是否出错:

# cd /opt/sonarqube-5.5/logs/

# tail -f sonar.log 

4.如果启动成功,则访问http://<你安装的sonar服务器ip>:9000

五、安装中文插件

1.下载对应的插件,https://github.com/SonarQubeCommunity/sonar-l10n-zh

2.找到对应的版本jar包,我是5.5所以我下载1.10版本插件,如图:

2.1然后找到对应版本下载:

3.将下载的jar包上传到服务器,然后拷贝到安装目录下的/extensions/plugins/

# cp sonar-l10n-zh-plugin-1.10.jar  /opt/sonarqube-5.5/extensions/plugins/

3.1然后重启

# cd /opt/sonarqube-5.5/bin/linux-x86-64/

# ./sonar.sh restart

遇到问题:

1.我安装了5.6版本之后在分析代码的时候一直提示我jdk版本不支持,所以我后来换成了6.7.3长期支持版本,jdk也换成了1.8,还需要注意的是在项目路径下需要新建一个文件

sonar-project.properties内容如下:

sonar.projectKey=org.sonarqube:sonarqube-scanner
sonar.projectName=Example of SonarQube Scanner Usage
sonar.projectVersion=1.0

sonar.sources=src,copybooks

sonar.sourceEncoding=UTF-8

## Cobol Specific Properties

# comma-separated paths to directories with copybooks
sonar.cobol.copy.directories=copybooks
# comma-separated list of suffixes
sonar.cobol.file.suffixes=cbl,cpy
sonar.cobol.copy.suffixes=cpy

## Flex Specific Properties

# retrieve code coverage data from the Cobertura report
sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml

# PL/I Specific Properties
sonar.pli.marginLeft=2
sonar.pli.marginRight=0
sonar.java.binaries=targetclasses

重点在于sonar.java.binaries=targetclasses这句,等号后面需要写你要分析代码的路径

2.由于新版本sonar有安全方面的考虑,用root用户启动不了,需要新建一个用户启动

3.问题定位: java.nio.file.AccessDeniedException: /usr/local/sonarqube/temp/conf/es/jvm.options 解决方案: 各种尝试无果,原来一直是好好的, 后来看到网上有一篇其他问题的,删除了temp后解决。 删除重启sonar后,temp文件会重新生成。 于是,备份temp,删除temp.重启,问题解决

原文地址:https://www.cnblogs.com/syuf/p/8514991.html