jenkins+sonarQube实现代码扫描
sonarQube安装
- SonarQube基于Java开发,所以需要安装 OpenJDK8 版本。
- SonarQube需要依赖 MySQL 数据库,至少 5.6 版本以上。
- SonarQube的小型实例至少需要4GB 内存,如果是大型实例需要 16GB
- 7.8之后JDK本版需要JDK11本版 且不支持MySQL
本次安装的时7.4的本版
- sonarqube版本 7.4下载地址 wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.4.zip
- jdk 1.8
- Mysql 5.7.30 需要手动创建
sonar库
解压 unzip sonarqube-7.4.zip -d /usr/local/
-
因为
sonarqube不能以root启动
,此处需要创建一个普通用户,此处我创建的为sonar
useradd sonar
-
更改下sonarqube目录所有权
-
ln -s /usr/local/sonarqube-7.4 /usr/local/sonarqube chown -R sonar:sonar /usr/local/sonarqube chown -R sonar:sonar /usr/local/sonarqube-7.4/
-
修改sonarqube连接数据库配置文件 /usr/local/sonarqube-7.4/conf/sonar.properties
-
sonar.jdbc.url=jdbc:mysql://xxx:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=sonar sonar.jdbc.password=xxx sonar.sorceEncoding=UTF-8 sonar.login=admin sonar.password=admin
- 相关日志文件 /usr/local/sonarqube-7.4/logs
-
启动sonarqube服务
目录 /usr/local/sonarqube-7.4/bin/linux-x86-64 启动服务时需先切换位sonar用户
su -l sonar
./sonar.sh start 启动服务本目录会生成一个wrapper.log日志文件 - 开放端口
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --query-port=9000/tcp
firewall-cmd --reload
systemctl restart firewalld
systemctl status firewalld
systemctl stop firewalld -
通过浏览器输入
http://xxx:9000
地址来访问sonarqube 用户名:admin 用户密码:admin
- sonar-scanner 下载与配置
地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zip
解压:解压 unzip sonar-scanner-cli-3.2.0.1227-linux.zip -d /usr/local/
修改配置 /usr/local/sonar-scanner-3.2.0.1227-linux/conf/sonar-scanner.properties
Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here
#----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
jenkins 配置sonarQube
- 安装插件 Manage Jenkins–>Manage Plugins–>SonarQube Scanner
- 在 Jenkins 上配置 SonarQube 服务端地址;
Manage Jenkins–>Configure System–>sonarQube
- 添加令牌 sonar 生成令牌 Jenkins添加令牌
- 配置 Sonar-Scanner 客户端工具路径Manage Jenkins–>Global Tool Configuration–>sonar-scanner
- 构建配置
sonar.projectName=${JOB_NAME} #项目在sonarqube上的显示名称
sonar.projectKey=XXXXX #项目的唯一标识,不能重复
sonar.sources=XXXXXXXXXXXX/src #扫描哪个项目的源码(使用绝对路径)
sonar.java.binaries=XXXXXXXXXXX/classes #扫描哪个项目的classes(使用绝对路径)
sonar.java.source=1.8 #java版本
sonar.language=java #语言 - 构建项目
创作不易,转摘请标明出处。如果有意一起探讨测试相关技能可加博主QQ 771268289 博主微信:ding17121598
本文来自博客园,作者:怪圣卡杰,转载请注明原文链接:https://www.cnblogs.com/dwdw/p/17752178.html