1. 安装SonarQube
1.1. 下载
下载地址:https://www.sonarqube.org/downloads/
本次使用安装包为:sonarqube-7.4.zip
需要提前准备jdk1.8、mysql-5.6。
1.2. 安装
1、解压安装包
2、准备数据库(mysql)
a)新建数据库用户和数据库
建库sql (sonar/sonar) CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; FLUSH PRIVILEGES; |
b)修改数据库配置文件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&useSSL=false |
1.3. 启动
新建sonar用户;
启动mysql数据库;
然后执行如下命令:
su sonar cd /data/sonarqube-7.4/bin/linux-x86-64 ./sonar.sh start |
注意不要使用root启动。sonarqube自带了es,所有不能使用root权限。
1.4. 访问
默认访问地址:http://10.15.1.28:9000
admin/admin
2. 安装配置Jenkins
2.1. Jenkins安装
略
2.2. 安装gradle
下载安装包解压,配置环境变量
export GRADLE_HOME=/data/gradle-2.8 export PATH=$GRADLE_HOME/bin:$PATH |
本次使用2.8版本是项目需要。
2.3. 安装Jenkins插件
2.4. 工具配置
1、SonarQube Scanner配置:
3. Jenkins任务配置
3.1. java任务配置
clean build -x test |
sonar.projectKey=$JOB_BASE_NAME sonar.projectName=$JOB_BASE_NAME sonar.projectVersion=1.0.0 sonar.language=java sonar.java.source=1.8 #sonar.sources=src sonar.sources=${WORKSPACE}/src/main/java sonar.sourceEncoding=UTF-8 sonar.java.binaries=${WORKSPACE}/build/ |
报告查看地址: <a href="http://10.15.1.28:9000/dashboard?id=$JOB_BASE_NAME">http://10.15.1.28:9000/dashboard?id=$JOB_BASE_NAME</a><br> (本邮件由系统自动发出) |
3.2. python任务
只列出与java任务不同之处:
sonar.projectKey=$JOB_BASE_NAME sonar.projectName=$JOB_BASE_NAME sonar.projectVersion=1.0.0 sonar.sources=. sonar.sourceEncoding=UTF-8 |
4. 附录
4.1. elasticsearch启动错误
1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
ulimit -Hn ulimit -Sn |
修改/etc/security/limits.conf文件,添加如下配置:
sonar hard nofile 65536 sonar soft nofile 65536 root hard nofile 65536 root soft nofile 65536 |
重新登陆即生效。
临时修改命令如下:(重启后失效)
ulimit -n 65535 |
2、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,添加配置
vm.max_map_count=262144 |
执行命令sysctl -p生效