SonarQube简介 Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言(支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex等)提供支持,对国际化以及报告文档化也有良好的支持。可以说Sonar是目前最强大的代码质量管理工具之一。 下面就来揭开Sonar的神秘面纱,看看如何在Centos环境上安装Sonar。 安装环境 系统环境:centos7.0 -x86_64(最小化安装) 前置条件:jdk1.8 , mysql-5.6 软件下载目录:/usr/local/ 软件安装目录:/usr/local/ 软件版本:sonarqube-6.7,sonar-runner-dist-2.4 sonar-scanner-3.0.3.778 sonarqube下载地址:http://www.sonarqube.org/downloads/ sonar-runner下载地址:https://link.jianshu.com/?t=http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip sonar-scanner下载扫描器地址:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip

预置条件 1, 需要JDK1.6+支持; 添加环境变量 [root@localhost java]# vim /etc/profile JDK export JAVA_HOME=/usr/java/jdk1.8.0_101 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH export TIME_STYLE='+%Y/%m/%d %H:%M:%S' [root@localhost local]# source /etc/profile

2, 需要Mysql数据库支持;虽然SonarQube自带了H2数据库,但是为了方便管理数据推荐使用Mysql数据库 安装Mysql数据库 安装MySQL的yum源 yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 安装MySQL yum -y install mysql mysql-devel mysql-server mysql-utilities 启动MySQL systemctl start mysqld.service 3,数据库配置 进入数据库命令 mysql -u root -p mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar'; mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; mysql> FLUSH PRIVILEGES;

4,安装 在安装之前,介绍一下SonarQube和SonarQube Runner之间的关系。 SonarQube是服务器端,它主要有两个功能:1.分析源代码;2.因为它内嵌了Apache模块,所以提供Web端的界面访问。 SonarQube Runner是一个利用SonarQube服务端分析代码的命令行工具,可以把它简单理解为客户端。 所以,为了安装和调试方便,建议SonarQube和SonarQube Runner都下载。

5, 安装SonarQube 第一步:将下载的sonarqube-6.7.zip解压后移动到/usr/local目录下。具体步骤如下: 将文件解压到/usr/local/ [root@localhost local]# unzip sonarqube-6.7

第二步:配置环境变量 [root@localhost local]# vim /etc/profile export SONAR_HOME=/usr/local/sonarqube-6.7 export SONAR_RUNNER_HOME=/usr/local/sonar-runner-2.4 PATH=$PATH:$SONAR_HOME/bin:$SONAR_RUNNER_HOME/bin

[root@localhost local]# source /etc/profile 第三步:配置sonar.properties 配置SonarQube Runner [root@localhost local]# # unzip sonar-runner-dist-2.4.zip [root@localhost sonar-runner-2.4]# vim sonar-project.properties #Required metadata sonar.projectKey=my:project sonar.projectName=yaok sonar.projectVersion=1.0 #Paths to source directories. #Paths are relative to the sonar-project.properties file. Replace "" by "/" on Windows. #Do not put the "sonar-project.properties" file in the same directory with the source code. #(i.e. never set the "sonar.sources" property to ".") sonar.sources=/root/java #The value of the property must be the key of the language. sonar.language=java #Encoding of the source code sonar.sourceEncoding=UTF-8 #Additional parameters sonar.my.property=value

[root@localhost sonar-runner-2.4]# ./bin/sonar-runner -e -X 如果能够看到下面的输出信息,证明你的SonarQube Runner安装并配置正确啦。 6,安装后启动SonarQube 用root无法启动lSonarQube,需要另外新建普通用户来启动 [root@localhost ]# useradd esadmin [root@localhost local]# chown esadmin.esadmin sonarqube-6.7 [root@localhost sonarqube-6.7]# vim elasticsearch/config/elasticsearch.yml 开启以下两行 [root@localhost sonarqube-6.7]# su esadmin [esadmin@localhost sonarqube-6.7]$ ./bin/linux-x86-64/sonar.sh start 启动的时候会报错 1,错误:max file descriptors [4096] for elasticsearch process is too low, increase to at least 解决方法: [root@localhost ]#vim /etc/security/limits.conf esadmin hard nofile 65536 esadmin soft nofile 65536 在文件最后添加以上两行 查看文件限制命令 [esadmin@localhost sonarqube-6.7]$ ulimit -Hn 2,错误,max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 解决方法: 切换到root用户修改配置sysctl.conf [root@localhost]#vim /etc/sysctl.conf 添加下面配置: vm.max_map_count=655360 并执行命令: [root@localhost java]# sysctl -p 解决好以上错误后就可以重启SonarQube [esadmin@localhost sonarqube-6.7]$ ./bin/linux-x86-64/sonar.sh start [root@localhost sonarqube-6.7]# ps -aux |grep sonar 使用浏览器就可以直接登陆 http://192.168.0.39:9000/projects 7,安装中文语言包 选择语言包,点击安装,安装好后重启,重新进入就是汉化版了

下篇讲解如何利用Jenkins和SonarQube集成对代码进行持续检测 注:有些文字来自互联网