1. SonarQube安装
1.1准备环境
Tips:
sonarqube5.6+ 必须要JDK1.8
sonar scanner 2.5+后也要使用JDK1.8,所以JDK1.7下就要用scanner 2.4。
sonar的安装和启动不用root用户,而是用低权限的linux用户。
- 数据库配置
首先确保mysql5.6版本及以上。
创建SonarQube 服务所需的数据库:
#mysql -uroot -p
//输入你的数据库密码
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonarpassword';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;
修改max_allowed_packet
#vim /etc/my.cnf
[mysqld]
max_allowed_packet = 300M
//重启
#service mysqld restart
//重启后查看
#mysql -uroot -p
mysql> show variables like '%max_allowed_pack%';
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| max_allowed_packet | 314572800|
+--------------------+-----------+
1 row in set (0.00 sec)
---------------------
- SonarQube、Sonar-Scanner添加环境变量
将下载的sonarqube-6.7.4.zip、sonar-scanner-cli-3.2.0.1227-linux.zip
解压后移动到/usr/local目录下
#unzip sonarqube-6.7.4.zip /usr/local
#unzip sonar-scanner-cli-3.2.0.1227-linux.zip /usr/local
添加环境变量
#vi /etc/profile
//在末尾加上:
export SONAR_HOME=/usr/local/sonarqube-6.7.4
export SONAR_SCANNER_HOME=/usr/local/sonar-scanner-3.2.0.1227-linux
PATH=$PATH:$SONAR_HOME/bin:$SONAR_SCANNER_HOME/bin
//使修改生效
#source /etc/profile
按如下配置修改sonar.properties 文件:
#vi $SONAR_HOME/conf/sonar.properties
//在开头加上
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=172.16.221.39//ip address
sonar.web.context=/
sonar.web.port=9000
1.2 SonarQube 配置
# useradd esuser
# chown -R esuser.esuser $SONAR_HOME
# chmod 777 -R $SONAR_HOME
1)修改elasticsearch.yml参数
#vi $SONAR_HOME/elasticsearch/config/elasticsearch.yml
//在开头加上
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 172.16.221.39
http.port: 9200
...
...
...
---------------------
//找到以下参数改为false
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
2)修改limits.conf参数
#vi /etc/security/limits.conf
//开头添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
3)修改20-nproc.conf参数
不同环境可能配置文件名不同,在/etc/security/limits.d/文件夹下寻找
# vi /etc/security/limits.d/20-nproc.conf
//修改如下内容:
* soft nproc 1024
//将1024改为2048
* soft nproc 2048
4)修改sysctl.conf文件
#vi /etc/sysctl.conf
//添加下面配置:
vm.max_map_count=655360
//修改完成后,执行以下命令生效
#sysctl -p
4 SonarQube启动
- 启动elasticsearch
# su esuser
#$SONAR_HOME/elasticsearch/bin/elasticsearch -d
//查看是否启动成功,能看到9200和9300证明就成功了
#netstat -nultp
![启动成功端口](https://img.haomeiwen.com/i17035812/b6381a53d5b79f8c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 启动sonarqube
#$SONAR_HOME/bin/linux-x86-64/sonar.sh start
启动成功后,浏览器中访问 http://IP:9000/ ,界面如下:
默认登录账户admin 密码 admin,可登录后修改密码。
如需汉化,下载sonarqube 汉化包,放到$SONAR_HOME/extensions/plugins ,重启sonarqube (sonar.sh restart)即可。
2 Sonar-Scanner安装
2.1 建立文件夹
#mkdir -p /root/java/test-project
#mkdir -p /root/java/test-project/src
//src文件夹下上传java文件进行测试,如helloword.java
2.2 增加配置文件
#cd /root/java/test-project
在该目录下新建文件sonar-project.properties
sonar.projectKey= test-project
sonar.projectName= test-project
sonar.projectVersion=1.0
sonar.sources=src/
sonar.language=java
sonar.sourceEncoding=UTF-8
2.3启动扫描
# $SONAR_HOME/bin/sonar-scanner
登录sonarqube网页,出现以下界面则代表扫描成功
扫描成功界面
3 Jenkins集成Sonarqube
3.1安装Jenkins
#rpm -ivh jenkins-2.107.3-1.1.noarch.rpm
//安装后启动
#service Jenkins start
在浏览器中访问 http://IP:8080/
首次进入会要求输入初始密码如下图
密码为
#cat /var/lib/jenkins/secrets/initialAdminPassword
创建超级管理员账号
账号界面
Tips:
因为Jenkins默认端口是8080,可能会导致端口冲突.修改Jenkins的默认端口即可:
vi /etc/sysconfig/jenkins
//修改JENKINS_PORT即可
3.2离线安装插件
登录至jenkins主界面
系统管理-->管理插件-->高级-->上传插件
上传sonar、svn有关插件,进行安装
可参考-->点击
3.3配置
登录至jenkins主界面
系统管理-->SonarQube servers
sonarqube配置
其中token获取方式如下:
登录至sonarqube主界面
右上角绿色图标-->我的账号-->安全
sonar配置
输入关键字(如admin)生成的令牌即Server authentication token
登录至jenkins主界面
系统管理-->全局工具配置
输入jdk和sonarqube-scanner的home路径
路径
3.4 新建任务
登录至jenkins主界面
新建任务->创建一个自由风格的软件项目(项目名称自取,如:test)
进入SVN配置
其中url地址是检测代码存放地址,目录结构与本地扫描一致
src_addr
进入sonnarqube-scanner配置
//配置内容如下
sonar.projectKey= test_project
sonar.projectName=test_project
sonar.projectVersion=1.0
sonar.sources=./src
sonar.java.binaries=./src/
sonar.login=admin
sonar.password=admin
sonar.language=java
sonar.sourceEncoding=UTF-8
如图:
scanner
登录至sonarqube界面
配置scm和svn
将scm设置为false、svn设置用户名和密码
sonar
3.5 启动项目
进入jenkins界面,进入建立好的test项目,点击立即构建即可
如成功,则可在sonarqube界面找到刚刚执行的记录。
成功界面
网友评论