Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不但是一个质量数据报告工具,更是代码质量管理平台。支持的措辞包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。紧张特点:代码覆盖:通过单元测试,将会显示哪行代码当选中改进编码规则征采编码规则:按照名字,插件,激活级别和种别进行查询项目征采:按照项目的名字进行查询比拟数据:比较同一张表中的任何丈量的趋势
sonar安装1,下载sonar
sonar支持跨平台,如linux,windows等,下载地址:

https://www.sonarqube.org/downloads/
我下载的是6.6的版本,新版本好象不再支持mysql。下载后解压可以看到如下目录:
bin目录放的是启动文件,conf放的是配置文件,extensions/plugins放的是插件。
2,下载sonar-scanner
下载地址:
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
根据你操作系统选择下载,我下载的是2.8版本,如果上面网址找不到2.8版本,可以试下这个下载地址:
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
把稳:sonerScanner对JDK版本也会有哀求的,2.8支持java8
3,配置数据库
新建一个空库,数据库名自己取,比如取sonar,
配置sonar:
打开conf/sonar.properties文件,可以看到配置文件中默认写了各种数据链接的例子,在mysql那块,加入我们自己的数据库连接即可,如
sonar.jdbc.username=test
sonar.jdbc.password=test
sonar.jdbc.url=jdbc:mysql://192.168.1.104:13314/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
配置sonar-scanner:
打开conf/sonar-scanner.properties文件,同样加入上面的数据库连接即可。
4,汉化包(此过程可跳过)
https://github.com/xuhuisheng/sonar-l10n-zh/releases
根据sonar的版本下载对应的汉化包,由于我下载的sonar是6.6版本,以是下载
sonar-l10n-zh-plugin-1.18.jar
将下载jar包放到/extensions/plugins目录中
5,设置环境变量
为了方便利用sonar-scanner命令,须要为其设置环境变量
将配置好的sonar和sonar-scanner上传到linux做事器上,我的是存放路径是/sterson。
编辑/etc/profile文件,追加sonar-scanner路径:
export PATH=$PATH:/sterson/sonar-scanner-4.5.0.2216-linux/bin
然后实行 source /etc/profile 使环境变量配置生效。
利用sonar和sonar-scanner
1,启动sonar
进入sonar目录,比如我的路径是 /sterson/sonarqube-6.6/bin/linux-x86-64
启动命令: ./sonar.sh start
重启命令:./sonar.sh restart
停滞命令:./sonar.sh stop
在浏览器访问http://192.168.41.164:9000/,看到正在启动,等启动完后,
点击登录,默认账号密码是admin
把稳:启动时不能用root用户,不然会报错,由于wrapper不能以root来启动,以是须要创建一个普通用户来启动。
2,编辑sonar-project.properties
在须要扫描的源代码项目的根目录,创建sonar-project.properties文件,内容如下:
sonar.projectKey=my:project
sonar.projectName=THCompanyService
sonar.projectVersion=1.0
sonar.sources=/sterson/resource/THCompanyService/trunk/dev/src/main/java
sonar.java.binaries=/sterson/resource/THCompanyService/trunk/dev/target/classes
projectName:项目名称,自定义即可
projectVersion:项目版本
Sources:源代码路径
Binaries:项目编译后的class文件的目录
3,扫描
进入源代码所在根目录,实行sonar-scanner,可看到开始扫描。
把稳:如果报/bin/sh: sonar-scanner: 未找到命令,则考试测验建立连接,命令如下:
ln -sv /sterson/sonar-scanner-4.5.0.2216-linux/bin/sonar-scanner /usr/local/bin/sonar-scanner
/sterson/sonar-scanner-4.5.0.2216-linux/bin/sonar-scanner,这个是我的路径,须要改成你实际的路径
扫描结束后,返回到浏览器sonar查当作果:
安装sonar-pdf-plugin
到此网址下载
https://gitee.com/zzulj/sonar-pdf-plugin
把稳:这里只供应源码,下载后须要用maven编译天生jar包,以是如果你还没安装maven,要先安装maven,然后实行命令:
mvn clean package -Dmaven.test.skip=true
编译后会天生sonar-pdfreport-plugin-3.0.3.jar
将jar包放到sonar的extensions/plugins目里,重启sonar。
然后在sonar的配置中就可以看到pdf了。
把稳:须要每个配置项都设置并保存。Username和Password我设置的是与sonar的一样。
否则扫描过程会报如下缺点:
INFO: Can't get Compute Engine task status.Retry.........
ERROR: Problem generating PDF file.
org.sonar.report.pdf.entity.exception.ReportException: Can't get Compute Engine task status
设置sonar web 内存
修正/conf/sonar.properties文件,在文中搜索这两项,去掉前面的#号。
注间:javaOpts的设置的值不能大于ce的值,否则启动报错。
sonar.web.javaOpts=-Xmx1024m -Xms512m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-Xmx1024m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
设置sonara-scanner内存
修正/etc/profile文件,追加如下配置:
export SONAR_SCANNER_OPTS="-Xms256m -Xmx2048m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=256m"