SonarQube与Jenkins集成对代码进行质量分析
作者:会飞的zxl
SonarQube 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。
同时,它提供了丰富的插件,支持多种语言的检测, 如 Java、Python、Groovy、C、C++等几十种编程语言的检测。
它主要的核心价值体现在如下几个方面:
检查代码是否遵循编程标准:如命名规范,编写的规范等。 检查设计存在的潜在缺陷:SonarQub e 通 过插 件 F indbugs、Checkstyl e 等 工具检测代码存在的缺陷。 检测代码的重复代码量:SonarQub e 可 以展示项目中存在大量复制粘贴的代码。 检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。 检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况。 SonarQub e 平 台是 由 4 个 部分组成:
SonarQube Server SonarQube Database SonarQube Plugins SonarQube Scanner
基础配置需求:
内存:至少2GB
磁盘:高级SSD
JDK:8数据库:mysql5.6/mysql5.7
安装配置步骤:
#安装数据库useradd mysql
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gztar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysqlchown -R mysql.mysql /usr/local/mysql
#初始化数据库/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql_data --initializecp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchkconfig mysqld on
ln -s /usr/local/mysql/bin/mysql /usr/bin/
#创建数据库及用户create database sonar;
alter privileges all on sonar.* to 'sonar'@'localhost' identified by 'password';
flush privileges;
#同步时区cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#安装sonarqubeuseradd sonarqube
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.6.zipunzip sonarqube-6.7.6.zip
mv /usr/local/src/sonarqube-6.7.6 /opt/chown -R sonarqube.sonarqube /opt/sonarqube-6.7.6/su sonarqube -c "/opt/sonarqube-6.7.6/bin/linux-x86-64/sonar.sh start"
#安装scannerwget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zipunzip sonar-scanner-cli-3.2.0.1227-linux.zip
mv /usr/local/sonar-scanner-3.2.0.1227-linux/ /usr/local/sonar-scanner#配置环境变量export PATH=/usr/local/sonar-scanner/bin:$PATH#配置文件#sonarqube服务器配置[root@sonarqube-pro opt]# cat /opt/sonarqube-6.7.6/conf/sonar.properties | grep -v "#" | grep -v "^$"sonar.jdbc.username=sonar
sonar.jdbc.password=password
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=falsesonar.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.javaOpts=-Xmx3072m -Xms3072m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=0.0.0.0
sonar.web.port=9000
#jenkins scanner的配置
root@jenkins:/usr/local/sonar-scanner/conf# cat sonar-scanner.properties | grep -v "^$" | grep -v "#" sonar.host.url=http://sonarserver:9000
jenkins集成步骤:
1 sonarqube服务启动后,打开页面,获取token
2 在“系统管理”--“系统设置”找到SonarQube servers,配置地址,在“Server authentication token”配置token,然后保存
3 在“系统管理”--“全局工具配置”–“SonarQube Scanner”
4 对应项目构建配置
猜你喜欢
您可能感兴趣的文章:
- vue.js中使用Export2Excel导出Excel表格
- 移动端css 初始化
- 常用属性
- 滚动banner
- lua lua_package_path attempt to call global 'lua_package_path'
- 1000行MySQL命令,很实用!
- js 获取当前url地址
- safasf
- MySQL ALTER TABLE 添加/修改/删除字段
- php获取ip地址
- ajax The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.
- jQuery jsonp跨域请求
- nginx lua access_by_lua_file设置变量无变化
- js中的值类型和引用类型的区别
- shell常用脚本变量
- tcpdump 抓包命令
- kubernetes kubect命令总结
- docker run mysql confluence
- docker容器日志归档工具 log-pilot