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提供四种版本:
- 社区免费版
- 开发者版
- 企业版
- 数据中心版
安装好之后,可以以admin的身份来定义不同的规则:
主要集中在下面5个方面:
作为管理员提供了下面的一些菜单功能。
那么如何使用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的原理和使用方式,还请读者自己根据上面的安装文档自行安装并用来真正的扫描一下Java项目或者JavaScript,C#等项目。如果要扩展其功能,读者们还可以以管理员的身份安装下面的插件。
大家安装好SonarQube服务器之后,可以尝试安装这些插件试试,看其分别提供了什么样的功能来支持我们的DevOps的技术栈。