linux上配置Sonar代码扫描
技术选型
下载地址:链接:https://pan.baidu.com/s/1bak9cDDc2Edc4S3gn4fFsA 提取码:tas3
数据库 | mysql5.6 ~ mysql5.7 |
代码分析 | sonarqube-7.6 |
扫描器 | sonar-scanner-cli-4.0.0.1744-linux |
汉化包 | sonar-l10n-zh-plugin-1.26.jar |
安装sonarqube
1. 上传并解压sonarqube
2 创建用户(不能以root用户启动),并赋予权限
创建用户
# useradd sonar
# passwd sonar
赋予权限
# chown -R sonar.sonar /usr/local/userfile/sonarqube-7.6
3. 编辑sonar.properties文件(默认启动端口9000,我这里修改了8010)
vim sonarqube-7.6/conf/sonar.properties
sonar.web.port=8010 sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=root sonar.jdbc.password=root
创建数据库
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
4. 切换用户,启动SonarQube
切换至sonar用户下启动sonar
# su sonar
启动 SonarQube
# cd /usr/local/userfile/sonarqube-7.6/bin/linux-x86-64
# ./sonar.sh start
浏览器测试 192.168.200.100:8010
用户名:admin
密码:admin
【汉化】
将 sonar-l10n-zh-plugin-1.26.jar 汉化包,放到 sonarqube-7.6/extensions/plugins 目录下, 重启sonar就好了。
# ./sonar.sh restart
扫描项目
1. 在项目的根目录下创建 sonar-project.properties 文件
sonar.projectKey=【项目唯一标识】 sonar.projectName= sonar.projectVersion=1.0 sonar.sources=【项目所在路径】 sonar.exclusions=**/test/**,**/target/** sonar.java.binaries=target/classes sonar.java.source=1.8 sonar.java.target=1.8 sonar.sourceEncoding=UTF-8
然后再sonar面板创建项目配置扫描,将sonar的maven命令 复制到 项目的根目录下 去执行就好了。
此时就可以看到我们检查信息
安装 sonar-scanner-cli 扫描器
上面我们安装好sonarqube之后,后续没法手动再次扫描,所以我们就会用到这个工具了。
1. 解压 安装包
2. 配置环境变量 vim /etc/profile
export SONAR_RUNNER_HOME=/usr/local/userfile/sonar-scanner-4.0.0.1744-linux/ $SONAR_RUNNER_HOME/bin 然后 source /etc/profile 刷新文件就好了
3. 配置数据库信息(由于我上面把sonar默认的9000端口改了,所以我这里也要指定下sonar的端口)
vim sonar-scanner-4.0.0.1744-linux/conf/sonar-scanner.properties
#----- Default SonarQube server sonar.host.url=http://localhost:8010 #----- Default source code encoding #sonar.sourceEncoding=UTF-8 sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=root sonar.jdbc.password=root sonar.sorceEncoding=UTF-8 sonar.login=admin sonar.password=admin
4. 然后我们在项目的根目录,也就是 sonar-project.properties 所在的目录执行命令就能扫描了。(我们可以写成命令,通过jenkins来触发或者用定时任务脚本来执行)
# sonar-scanner