使用声纳进行代码质量管理及邮件报的警

  

一、声纳概述

  

声纳是一个用于代码质量管理的开放平台。通过插件机制,声纳可以集成不同的测试工具,代码分析性工具,以及持续集成工具。

  

与持续集成工具(例如哈德逊/Jenkins等)不同,声纳并不是简单地把不同的代码检查工具结果(例如FindBugs, PMD等)直接显示在Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

  

在对其他工具的支持方面,声纳不仅提供了对IDE的支持,可以在Eclipse和IntelliJ IDEA这些工具里联机查看结果;同时声纳还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用声纳。

  

此外,声纳的插件还可以对Java以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

  

声纳的功能就是来检查代码是否有BUG。除了检查代码是否有虫子还有其他的功能,比如说:你的代码注释率是多少,代码有一些建议,编写语法的建议。所以称之为质量管理。

  

声纳的相关下载和文档可以在下面的链接中找到:http://www.sonarqube.org/downloads/?br/>需要注意最新版的声纳需要至少JDK 1.8及以上版本。

  

二、部署声纳

  

注意:接下来的配置需要基于博文詹金斯+ Gitlab实现持续集成的环境进行部署的。

  

部署环境中所需的软件包及插件均可通过此链接进行下载。
关于声纳所需的插件也可通过https://docs.sonarqube.org/display/PLUG该网址进行下载!

  
 <代码> root@jenkins ~ # wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-5.6.zip
  root@jenkins ~ # sonarqube-5.6.zip解压缩
  [root@jenkins ~]/usr/local/sonarqube # mv sonarqube - 5.6
  (root@jenkins ~) # ln - s/usr/local/sonarqube/bin/linux - x86 - 64/声纳。sh/usr/local/bin  
  

三、安装MySQL数据库

  

声纳需要使用数据库,MySQL, Oracle SQL server都是支持的,本次博文采用MySQL数据库。如果环境已经存在MySQL数据库,那么就无需再次部署了,创建相应的数据库及用户即可。

  

为了简单,快速的部署Mysql数据库,采用脚本的方式安装Mysql数据库,下载一键安装Mysql

  

友情提示:声纳好像不支持mysql 5.5,建议安装mysql 5.6或更高的版本,提供的脚本安装的是mysql5.7的版本!

  
 <代码> root@jenkins ~ # ls mysql *
  mysql-5.7.22-linux-glibc2.12-x86_64.tar。广州mysql.sh
  # sh mysql.sh root@jenkins ~
  启动MySQL . .成功!
  mysql(警告):使用一个密码alt="使用声纳进行代码质量管理及邮件报警”> 
使用声纳进行代码质量管理及邮件报警”> <br/> <img src=

  

四,配置声纳实现代码扫描

  
 <代码> root@jenkins ~ # wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
  root@jenkins ~ # sonar-scanner-cli-3.3.0.1492-linux.zip解压缩
  # mv sonar-scanner-3.3.0.1492-linux//usr/local/sonar-scanner root@jenkins ~
  (root@jenkins ~) # ln - s/usr/local/sonar-scanner/bin/声纳扫描器/usr/local/bin/(root@jenkins ~) # ln - s/usr/local/sonar-scanner/bin/声纳扫描器的工作
  (root@jenkins ~) # vim/usr/local/sonar-scanner/conf/sonar-scanner.properties
  sonar.host.url=http://localhost: 9000
  sonar.sourceEncoding=utf - 8
  #以下是从声纳的主配置文件中复制:/usr/地方/sonarqube/conf/sonar.properties中复制过来的,用于连接数据库
  sonar.jdbc.username=声纳
  sonar.jdbc.password=123. com
  sonar.jdbc.url=jdbc: mysql://localhost: 3306/声纳? useUnicode=true& characterEncoding=utf8& rewriteBatchedStatements=true& useConfigs=maxPerformance  
  

五、测试代码扫描功能

  
 <代码> root@jenkins ~ # testalyzer-master解压缩。zip #该软件包可从博文开头连接中获取
  (root@jenkins ~) # cd testalyzer-master/项目/语言/php/php-sonar-runner-unit-tests/[root@jenkins php-sonar-runner-unit-tests] #猫sonar-project.properties
  #看一下下面的文件中都包含了些什么
  sonar.projectKey=org。sonarqube: php-ut-sq-scanner #自定义秘钥,如果秘钥一样,就会自动覆盖之前的测试结果
  声纳。projectName=PHP:: PHPUnit):: SonarQube扫描仪# web界面显示的名称
  sonar.projectVersion=1.0 #版本
  声纳。来源=src #软件包存放路径
  声纳。测试=测试#测试路径
  声纳。php语言=#要测试的语言
  声纳。sourceEncoding=utf - 8 #编码格式
  sonar.php.coverage.reportPath=报告/phpunit.coverage.xml
  sonar.php.tests.reportPath=报告/phpunit.xml
  #也就是说在项目里面必须有这个配置文件才可以进行扫描
  
  #测试PHP代码
  [root@jenkins php-sonar-runner-unit-tests] # pwd #确定在当前路径/usr/src/testalyzer-master/项目/语言/php/php-sonar-runner-unit-tests
  [root@jenkins php-sonar-runner-unit-tests] #声纳扫描器#进行测试
  #测试js代码
  [root@jenkins php-sonar-runner-unit-tests] # cd/root/testalyzer-master/项目/语言/javascript/javascript-sonar-runner
  [root@jenkins javascript-sonar-runner] #声纳扫描器#进行测试

使用声纳进行代码质量管理及邮件报的警