sonarqube 整合Jenkins


 sonarqube 整合Jenkins

Jenkins已经在环境中使用了三个多月了。但是一直都没有做到代码质量的检查,网上找到了sonarqube 它是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。 

详细介绍请看官方的说明: 

本次是在Jenkins环境基础上搭建的;就是说Jenkis与sonarqube是同一服务器: 

说明:sonarqube-5.5.zip  数据库使用:Mysql5.7.9官方至少要5.6以上,之前没留意一直报错;同时JDK版本要1.7以上。

sonar-scanner-2.6.1.zip   这是测试代码使用的;【本次使用5.5的版本】

 

如果安装sonarqube-5.6的话,JDK要1.8以上的版本,不支持1.7的了。 

sonarqube下载地址:https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.5.zip

sonar-scanner下载地址:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.6.1.zip

  

安装方法:

 

  1. unzip sonarqube-5.5.zip 
  2. mv sonarqube-5.5 /data/ 
  3. ln -s /data/sonarqube-5.5/ /data/sonar 
  4.  
  5. unzip sonar-scanner-2.6.1.zip 
  6. mv sonar-scanner-2.6.1 /data/ 
  7. ln -s /data/sonar-scanner-2.6.1 /data/sonar-scanner 

 

 配置环境变量:

vim ~/.bash_profile

  1. #sonar 
  2. export SONAR_HOME=/data/sonar 
  3. export SONAR_SCANNER=/data/sonar-scanner 
  4. export PATH=$PATH:$SONAR_HOME/bin:$SONAR_SCANNER/bin 

使用配置生效:

  1. source ~/.bash_profile 

 

修改sonarqube配置:

cd /data/sonar/conf

vim sonar.properties

大至修改如下:

 

  1. [root@Redis1 conf]# egrep -v "^.$|^#" sonar.properties  
  2. sonarsonar.jdbc.username=sonar       #Mysql中的用户名 
  3. sonarsonar.jdbc.password=sonar       #Mysql中的用户密码 
  4. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance 
  5. sonar.jdbc.driverClassName: com.mysql.jdbc.Driver 
  6. sonar.web.host=192.168.254.21       #主机,默认监听所有的 
  7. sonar.web.port=9000         #默认也是9000端口 
  8. sonar.web.http.maxThreads=50 
  9. sonar.web.http.minThreads=5 
  10. sonar.web.http.acceptCount=25 
  11. sonar.search.javaOpts=-Xmx1G -Xms256m -Xss256k -Djava.net.preferIPv4Stack=true \ 
  12. -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 \ 
  13. -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError 
  14. sonar.log.level=INFO 
  15. sonar.path.logs=logs 
  16. sonar.log.rollingPolicy=time:yyyy-MM-dd 
 

其实在端口后面几行可以不修改,但是如果你系统的内存太小可能会导致无法启动,就需要调整sonar.search.javaOpts参数。

 修改sonar-scanner配置:

cd /data/sonar-scanner/conf

vim sonar-scanner.properties 

  1. [root@Redis1 conf]# egrep -v "^.$|^#" sonar-scanner.properties  
  2. sonar.host.url=http://192.168.254.21:9000 
  3. sonar.sourceEncoding=UTF-8 
  4. sonarsonar.jdbc.username=sonar       #Mysql中的用户名 
  5. sonarsonar.jdbc.password=sonar       #Mysql中的用户密码 
  6. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 

 添加一个启动脚本到/etc/init.d/目录下:

 

  1. cat >/etc/init.d/sonar <<EOF 
  2. #!/bin/sh 
  3. # rc file for SonarQube 
  4. # chkconfig: 345 96 10 
  5. # description: SonarQube system (www.sonarsource.org) 
  6. ### BEGIN INIT INFO 
  7. # Provides: sonar 
  8. # Required-Start: $network 
  9. # Required-Stop: $network 
  10. # Default-Start: 3 4 5 
  11. # Default-Stop: 0 1 2 6 
  12. # Short-Description: SonarQube system (www.sonarsource.org) 
  13. # Description: SonarQube system (www.sonarsource.org) 
  14. ### END INIT INFO 
  15. /usr/bin/sonar $* 
  16.  
  17. EOF 

chmod +x /etc/init.d/sonar

 启动方法:

 

  1. /etc/init.d/sonar start 

 登陆到后台,创建一个用户token:

 

  

 

完成上面后,即完成了sonarqube的安装;接下来整合Jenkins;

在Jenkins——插件管理——安装插件:SonarQube Plugin 完成后把Jenkins重启一次;

 配置:系统管理——系统设置——SonarQube servers

  

把上面创建的token值复制到这里即可。

  

完成上面后保存;然后在项目中加上调用参数即可。

编辑项目——配置——Add post-build step——Execute SonarQube Scanner