SonarLint + SonarQube 静态代码扫描


一、IDEA安装SonarLint插件

1.安装SonarLint

在这里插入图片描述
由于我已经安装过了,我这里显示的是update; 如果IDEA里没有安装的话,显示的install
在这里插入图片描述
安装完成后重启IDEA
在这里插入图片描述

2.SonarLint静态扫描

右键项目:
在这里插入图片描述
可以看到能扫描出代码的缺陷了
在这里插入图片描述
缺陷处理优先级:blocker>critical>major>minor>info

二、Linux环境下部署SonarQube

1.部署条件

SonarQube版本:7.7(SonarQube-7.7之后不支持mysql数据库了)
jdk版本:1.8+
mysql版本:5.6+

jdk和mysql的安装在此篇中就不再做赘述,可以看我之前写的文章里,有部署步骤。

2.下载SonarQube

下载地址:https://www.sonarqube.org/downloads/
在这里插入图片描述

3.创建sonar用户并上传文件

# 创建sonar用户
useradd sonar

# 设置密码
passwd sonar
su - sonar

# 将下载的压缩包传到sonar用户的根目录下
unzip -o sonarqube-7.7.zip

解压后,进入目录,修改配置

# 进入sonarQube的conf目录
cd sonarqube-7.7/conf/

# 修改sonar.properties
view sonar.properties

在这里插入图片描述

4.创建sonar数据库

我是使用工具创建的库,当然也可以用命令来创建
在这里插入图片描述
在这里插入图片描述

5.启动SonarQube

# 进入bin目录
cd sonarqube-7.7/bin/linux-x86-64/

# 启动sonarqube
sh sonar.sh start

# 进入log查看启动日志
view /home/sonar/sonarqube-7.7/logs/web.log

在这里插入图片描述
说明启动成功了,浏览器内访问:http://ip:9000即可访问
(不能访问的话检查一下防火墙是否关闭了)
在这里插入图片描述

6.创建项目,关联代码

点击右上角login登录进SonarQube。初始用户名/密码:admin/admin,点击Create new project
在这里插入图片描述
输入项目名,填写完成后点击set up
在这里插入图片描述
随意输入token,点击generate
在这里插入图片描述
点击continue
在这里插入图片描述
在这里插入图片描述
把下面的命令复制下来,需要改造一下:

mvn clean compile -Dmaven.test.skip=true sonar:sonar -Dsonar.projectKey=activemq -Dsonar.host.url=http://192.168.25.11:9000 -Dsonar.login=ee10f9c57ae945c87d8dd228efd48e1c8b97785b

打开项目
在这里插入图片描述
输入刚才的maven命令,并执行
在这里插入图片描述
等maven命令执行完毕后,在网页端就可看到扫描报告了
在这里插入图片描述
如果遇到这种情况:
在这里插入图片描述
把maven命令改为:

mvn clean compile sonar:sonar -Dsonar.projectKey=activemq -Dsonar.host.url=http://192.168.25.11:9000 -Dsonar.login=admin -Dsonar.password=admin

三、SonarQube插件安装

插件打包:
链接: https://pan.baidu.com/s/1olcRs3Amg90AWgpILRw9HA 提取码: dufp

1.中文插件安装

中文插件下载地址:https://github.com/xuhuisheng/sonar-l10n-zh/tags
SonarQube对应的版本是1.27, 下载jar包后,将jar包放在:/home/sonar/sonarqube-7.7/extensions/plugins 路径下,重启sonaqube即可

# 重启sonarqube
cd /home/sonar/sonarqube-7.7/bin/linux-x86-64/
sh sonar.sh restart

可以看到sonarqube变成中文了:
在这里插入图片描述

2.PDF插件安装

项目地址:https://gitee.com/zzulj/sonar-pdf-plugin
选择这个分支:
在这里插入图片描述
git将代码拉取到本地后编译:
在这里插入图片描述
将编译生成的jar包上传到:/home/sonar/sonarqube-7.7/extensions/plugins 路径下,重启sonarqube
在这里插入图片描述
然后重新扫描一下代码,在更多-Download Pdf Report即可下载扫描报告
在这里插入图片描述
在这里插入图片描述

### SonarLintSonarQube 的区别及关系 #### 工具定位 SonarLint 是一款开发者工具,专注于本地开发环境中的即时代码质量分析。它能够在编写代码的过程中提供实时反馈,帮助程序员尽早发现潜在的质量问题[^1]。 相比之下,SonarQube 是一个全面的持续检测平台,不仅支持静态代码分析,还提供了项目管理功能以及历史数据跟踪能力。通过集成CI/CD流程,能够实现自动化测试和部署前后的严格审查机制[^2]。 #### 功能特性对比 - **安装方式** - SonarLint 可作为IDE插件直接嵌入到Visual Studio Code、IntelliJ IDEA等编辑器中。 - 而SonarQube则通常部署于服务器端,可通过浏览器访问Web界面进行操作配置。 - **分析范围** - 前者主要针对单个文件级别的语法错误检查和简单模式匹配;后者可以执行更深入的语言特定规则集评估,并能跨多个版本库汇总统计信息。 - 对于SonarLint而言,在编辑窗口旁边即刻显示警告提示即可满足需求; - 后者的报表更加详尽复杂,涵盖了趋势图、热点地图等多种可视化组件来辅助决策制定过程。 ```python # Python示例:如何在Python项目中使用SonarQube扫描并生成报告 import subprocess def run_sonarqube_scan(project_key, project_name, sources_path): command = [ "sonar-scanner", "-Dsonar.projectKey=" + project_key, "-Dsonar.projectName=" + project_name, "-Dsonar.sources=" + sources_path ] result = subprocess.run(command, capture_output=True) return result.stdout.decode() print(run_sonarqube_scan('my_project', 'My Project Name', './src')) ``` #### 协同工作流 两者之间存在紧密联系——SonarLint 发现的问题可以在推送到远程仓库之前得到修正,从而减少后期由SonarQube触发构建失败的风险。当开发者提交更改至中央源码控制系统之后,SonarQube会接管后续的任务链路,确保整个团队遵循统一的标准规范[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值