linux 部署 SonarQube
SonarQube介绍
SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码气味。它可以与您现有的工作流程集成,以支持跨项目分支和拉取请求的连续代码检查。
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"
该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友