当前位置: 首页 > 后端技术 > PHP

Sonar安装使用推荐

时间:2023-03-29 17:21:21 PHP

SonarQubeScanner安装使用文档代码质量相信是每个团队的最高追求之一,一个高素质的团队,开发成本、维护成本都非常低;同样数量的团队,一年内优质团队的产出是低质量团队的10倍;例如,一个团队开发一个产品,1000行代码产生一个错误,100行代码产生一个错误。我可以想象当时的情景。引入代码质量检查工具Sonar,为正在代码审查上下功夫的同学提供一点便利;官网提供了非常方便的教程;这里还有一个适合场景的中文推广:一段冗余度很高,代码逻辑重复很多的代码(是的,你没看错,这里的重复就是重复),系统检查,重构,架构调整随机网格项目;1.Sonar环境介绍sonar_platform_support.png通常是检查项目的代码,所以示例安装在阿里云服务器上。教程环境介绍:[]操作系统平台:centos6.x[]数据库:mysql5.6.x2、下载最新版本,兼容性会更好:下载Sonarsonarqube-6.4.zip下载扫描仪sonar-scanner-cli-3.0.3.778-linux3.安装并检测java:[root@xx]#java-versionjavaversion"1.8.0_111"Java(TM)SERuntimeEnvironment(build1.8.0_111-b14)JavaHotSpot(TM)64-BitServerVM(build25.111-b14,混合模式)显示没问题;javaOpenJDK低于8:官网下载jdk-8u111-linux-x64.tar.gz检测mysql5.6.x以上:mysql>selectversion();+------------+|版本()|+------------+|5.6.13|+------------+1rowinset(0.00sec)mysql>CREATEDATABASE`sonar`DEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;mysql>CREATEUSER'sonarUser'@'127.0.0.1'IDENTIFIEDBY'sonarPassword';mysql>GRANTALLON*.*TO'sonarUser'@'%';mysql>GRANTselect,insert,update,delete,create,dropon*.*tosonarUser@127.0.0.1IDENTIFIEDBY'sonarPassword';mysql>flushprivileges;mysql>exit[root@xx]mysql-h127.0.0.1-usonarUser-psonarPassword注意:安装sonar需要提前在mysql中建库并配置字符编码UTF-8;为声纳创建一个帐户;/app/mysql/my.cnf配置buffer更大一些,和你的代码相比会大很多:innodb_buffer_pool_size=128M[mysqld]#去掉前导#,设置为最重要数据的RAM量#cacheinMySQL。专用服务器从70%的总RAM开始,否则10%.innodb_buffer_pool_size=128M存储目录:/app/original/下载解压:[root@xx]unzipsonarqube-6.4.zipunzip;[root@xx]sonar-scanner-cli-3.0.3.778-linux.zip;drwxr-xr-x10rootroot4096Jun208:43sonarqube-6.4-rw-r--r--1rootroot139755847Jun1315:27sonarqube-6.4.zipdrwxr-xr-x6rootroot4096May1212:49sonar-scanner-3.0.3.778-linux-rw-r--r--1rootroot73799876Jun1315:02sonar-scanner-cli-3.0。3.778-linux.zipvimsonarqube-6.4/conf/sonar.propertiessonar.properties必须配置两个:configuremysql:#Usercredentials。#创建表、索引和触发器的权限必须授予JDBC用户。#必须首先创建架构。sonar.jdbc.username=sonarsonar.jdbc.password=sonarPassword#-----嵌入式数据库(默认)#H2em嵌入式数据库服务器监听端口,默认为9092#sonar.embeddedDatabase.port=9092#-----MySQL5.6orgreater#OnlyInnoDBstorageengineissupported(notmyISAM).#Onlythebundleddriverissupported.不能改。sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false配置web服务器:端口号:9090:允许ip:0.0.0.0表示允许所有;#绑定IP地址。对于具有多个IP地址的服务器,此属性指定将使用哪个地址侦听指定端口。#默认情况下,将在与server.sonar.web.host=0.0关联的所有IP地址上使用端口。0.0#网络上下文。设置时,它必须以正斜杠开头(例如/sonarqube)。#默认值为根上下文(空值)。#sonar.web.context=#传入HTTP连接的TCP端口。默认值为9000.sonar.web.port=9090启动:[root@xx]cd/app/original/sonarqube-6.4/[root@xx]./bin/linux-x86-64/sonar.sh开始[root@xx]psaux|grepsonarifnotupchecklog[root@xx]cd/app/original/sonarqube-6.4/logs[root@xx]vimweb.log;2017.06.1317:08:04INFOweb[][o.s.s.p.w.MasterServletFilter]正在初始化servlet过滤器org.sonar.server.authentication.ws.LogoutAction@96ee351[pattern=UrlPattern{inclusions=[/api/authentication/logout],exclusions=[]}]2017.06.1317:08:04INFOweb[][o.s.s.p.w.MasterServletFilter]初始化servlet过滤器org.sonar.server.authentication.ws.ValidateAction@3f15fe01[pattern=UrlPattern{inclusions=[/api/authentication/validate],exclusions=[]}]2017.06.1317:08:04INFOweb[][o.s.s.p.Platform]WebServerisoperational[root@xx]./bin/linux-x86-64/sonar.shrestart配置扫描器:vim/app/original/sonar-scanner-3.0.3.778-linux/conf/sonar-scanner.properties#-----默认SonarQube服务器sonar.host.url=http://xxx.xxx.xxx:9090#-----默认源码编码sonar.sourceEncoding=UTF-84.使用[罗ot@xx]sudoln-s/app/original/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner/usr/bin/sonar-scanner让sonar-scanner可执行文件加入全局项目根目录新建一个文件cd/app/project/vimsonar-project.propertiessonar.projectKey=project:adminsonar.projectName=projectsonar.projectVersion=1.4sonar.sources=.sonar.language=phpsonar.sourceEncoding=UTF-8Execution:[root@xxproject]#sonar-scannerINFO:Scanner配置文件:/app/original/sonar-scanner-3.0.3.778-linux/conf/sonar-scanner.propertiesINFO:项目根配置文件:/app/project/sonar-project.propertiesINFO:SonarQubeScanner3.0.3.7785.栗子安装后,启动后的界面,方便QA。白盒界面生产环境应该去掉注释。我扫描了一个开源插件。有很多错误。这里静态方法中使用的动态调用。发现代码冗余源:官网:https://www.sonarqube.org两分钟安装:https://docs.sonarqube.org/di...QQ:2764239385