代码质量检查的利器:SonarQube

SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。 通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。关于Sonarqube的环境搭建,可以参考下面的一篇文章:http://www.devopsedu.com/front/articleinfo/31 , 其不但要安装MySQL,还要安装ElasticSearch,其应用层的代码是基于java的,所以在安装SonarQube之前一定要记得安装JDK,最新版本的安装推荐使用JDK1.8以上的版本。

代码质量检查的利器:SonarQube_第1张图片

SonarQube提供四种版本:

  • 社区免费版
  • 开发者版
  • 企业版
  • 数据中心版
    在这里插入图片描述

安装好之后,可以以admin的身份来定义不同的规则:
代码质量检查的利器:SonarQube_第2张图片

主要集中在下面5个方面:

代码质量检查的利器:SonarQube_第3张图片

作为管理员提供了下面的一些菜单功能。
代码质量检查的利器:SonarQube_第4张图片

那么如何使用SonarQube来扫描不同的代码,比如Java代码,JavaScript代码,或者C#代码呢? 不同的语言有不同的使用方式。

#1 Java语言

对于Maven项目的命令如下:

mvn sonar:sonar \
  -Dsonar.host.url=http://192.168.172.129:9000 \
  -Dsonar.login=bd096dab95726decf6b0f6b30b304daafcbdbdd6

对于Gradle项目的命令如下:

./gradlew sonarqube \
  -Dsonar.host.url=http://192.168.172.129:9000 \
  -Dsonar.login=bd096dab95726decf6b0f6b30b304daafcbdbdd6

当然在使用之前要加入下面的依赖。

plugins {
  id "org.sonarqube" version "2.5"
}

#2 C#或者VB语言

SonarQube.Scanner.MSBuild.exe begin /k:"com.henry.test:aspdottest" /d:sonar.host.url="http://192.168.172.129:9000" /d:sonar.login="bd096dab95726decf6b0f6b30b304daafcbdbdd6"

MsBuild.exe /t:Rebuild

SonarQube.Scanner.MSBuild.exe end /d:sonar.login="bd096dab95726decf6b0f6b30b304daafcbdbdd6"

其客户端的扫描程序的下载地址为:
http://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html

#3 JS,Python,PHP等语言

sonar-scanner \
  -Dsonar.projectKey=com.henry.test:aspdottest \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://192.168.172.129:9000 \
  -Dsonar.login=bd096dab95726decf6b0f6b30b304daafcbdbdd6

其客户端的地址:http://redirect.sonarsource.com/doc/install-configure-scanner.html

对于上面的不同方式,我们都看到了一个Dsonar.login的值,那么这个值是什么呢?
这个值就是有能登录到Sonarqube服务器的用户或者管理员帮助生成的,相当一个凭证(Token),只有拥有了这个凭证,才能把在客户端生成的相关质量,安全等报告上传到SonarQube的服务器上。当然也可以通过用户名和密码方式进行认证,下面的图就是以管理员的方式生成的登录的Token值。
代码质量检查的利器:SonarQube_第5张图片

总结

书山有路,勤为径。 如果要真正的理解透SonarQube的原理和使用方式,还请读者自己根据上面的安装文档自行安装并用来真正的扫描一下Java项目或者JavaScript,C#等项目。如果要扩展其功能,读者们还可以以管理员的身份安装下面的插件。
代码质量检查的利器:SonarQube_第6张图片

大家安装好SonarQube服务器之后,可以尝试安装这些插件试试,看其分别提供了什么样的功能来支持我们的DevOps的技术栈。

你可能感兴趣的:(DevOps)