SonarQube代码质量扫描持续集成

1、安装JDK和配置JAVA_HOME和CLASSPATH

2、安装mysql数据库

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

wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.4.zip

unzip sonarqube-5.4.zip

vi /etc/profile

SONAR_HOME=/usr/jenkins/sonarqube-5.4

export SONAR_HOME

    source /etc/profile

5、配置sonarqube

在sonarqube解压包下编辑conf/sonar.properties文件,该文件中所有注释掉的数据库连接模板都是支持的,只需要去掉注释更改为自己的数据库连接即可,同时将默认的自带数据库连接注释去掉。

 一般需要配置以下属性(这里使用MySQL数据库,数据库的引擎必须是innodb):

vi /usr/jenkins/sonarqube-5.4/conf/sonar.properties

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

sonar.jdbc.maxActive=60

sonar.jdbc.maxIdle=5

sonar.jdbc.minIdle=2

sonar.jdbc.maxWait=5000

sonar.jdbc.minEvictableIdleTimeMillis=600000

sonar.jdbc.timeBetweenEvictionRunsMillis=30000

sonar.web.host=0.0.0.0

#修改snoar端口,默认为9000

sonar.web.port=9090

6、启动sonarqube服务

    /usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh console 启动服务

    /usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh start 启动服务

/usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh stop 停止服务

/usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh restart重启服务

启动成功后在浏览器地址栏输入http://localhost:9090即可访问snoarQube。

缺省用户名和密码是admin/admin

7、汉化sonarqube

https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/

安装目录:$SONAR_HOME/extensions/plugins

wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.9/sonar-l10n-zh-plugin-1.9.jar

8、在jenkins平台上安装插件SonarQube Scanner for Jenkins

9、在jenkins配置SonarQube

 

如果设置为5.3 or higher选择,就必须使用sonarQube account token进行连接,这个更安全。 
Server authentication token项需要在sonar server端生成 ;访问sonar server端 
菜单==》配置==》权限==》用户==》TOKENS==》Generate 生成token,将生成token添加到此处,完成添加。 

 

10、下载安装和配置sonar scanner

https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/

wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip

vi /home/jenkins/.bash_profile

SONAR_RUNNER_HOME=/usr/local/jenkins/sonar-scanner-2.8/

export PATH=$SONAR_RUNNER_HOME/bin:$PATH

source /home/jenkins/.bash_profile

测试是否安装sonner scanner成功

输入命令:sonar-runner -version出现以下信息,则表示环境变量设置成功

 

 

vi conf/sonar-scanner.properties

#Configure here general information about the environment, such as SonarQube DB details for example

#No information about specific project should appear here

#----- Default SonarQube server

sonar.host.url=http://localhost:9090

#----- Default source code encoding

sonar.sourceEncoding=UTF-8

#----- Global database settings (not used for SonarQube 5.2+)

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

#----- MySQL

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8

11、在jenkins中配置sonar scanner

系统管理–》Global Tool Configuration 

 

12、项目中添加sonar scanner分析

13、要让jenkins编译完成,自动将代码传给sonarqube进行分析,则要配置jenkins中的目标项目。 
选择自己的project==》配置==》add pre-build step 

 

14、遇到的问题

在项目源码根目录执行命令时,可能会有svn错误,因为当sonar扫描的时候,会因为无法访问.svn而扫描失败,在sonar平台中用admin登录后,点击‘配置’-‘SCM’,如下图: 

 

 

关注公众号获取海量视频

 

posted @ 2018-02-08 21:32  BUG弄潮儿  阅读(2120)  评论(0编辑  收藏  举报