SonarLint与IntelliJ:能否仅针对变更列表中的文件运行分析?
如何在IntelliJ中用SonarLint仅扫描变更列表(Changelist)的文件
当然有可行的方案!我平时也经常这么做,避免每次扫描整个项目浪费时间,下面给你分享几种实用的操作方式:
方法一:直接选中变更列表文件扫描
- 打开Version Control面板(快捷键
Alt+9),找到你要检查的目标变更列表 - 选中列表里的所有文件(用
Ctrl+A快速全选就行) - 右键点击选中的文件组,在菜单里找到 SonarLint -> Analyze with SonarLint,触发后SonarLint就只会扫描你选中的这些变更文件了
方法二:利用SonarLint的自定义范围扫描
- 打开SonarLint工具面板(右侧边栏找不到的话,通过
View -> Tool Windows -> SonarLint调出) - 点击面板顶部Analyze按钮旁的下拉箭头
- 选择 Custom Scope,在弹出的范围选择窗口里,直接选择对应变更列表的预设范围(IDEA默认提供了针对变更文件的scope);如果需要更精准,也可以手动创建一个仅包含目标变更列表文件的自定义范围
- 确认后就会启动针对变更文件的扫描
方法三:命令行方式(适合自动化场景)
如果你习惯用命令行操作,可以这样做:
- 先导出变更列表的文件路径,比如针对Git暂存区的文件,执行:
git diff --name-only --cached > changed-files.txt - 用SonarLint命令行工具扫描这个文件列表里的文件:
sonarlint analyze -f changed-files.txt
小提示
如果你的变更列表是默认的Default或者自定义命名的列表,操作时注意选中正确的列表就行。另外SonarLint会保留最近的扫描范围,下次再扫变更文件时重复步骤会更快捷。
内容的提问来源于stack exchange,提问作者java12399900
相关产品推荐
相关产品推荐

