一、环境要求
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.重启,问题解决