SonarQube的sonar.exclusions参数无法排除指定文件夹求助
解决SonarQube排除Symfony项目中src/Application/Sonata目录的问题
看起来你遇到的问题大概率是排除规则里的多余空格导致的,SonarQube对排除列表的格式要求很严格,逗号后面不能加空格,否则会把空格当成路径的一部分,自然匹配不到你想排除的目录。
先给你修正后的sonar-project.properties配置:
# Required metadata sonar.projectKey=project sonar.projectName=project sonar.projectVersion=0.1.3 # Description sonar.projectDescription=project a base symphony 2 # Encoding of the source code sonar.sourceEncoding=UTF-8 # 修正后的排除规则(去掉了逗号后的空格) sonar.exclusions=src/Application/Sonata/**/*,src/project/Resources/public/js/lib/**/*,src/project/Resources/public/js/jquery.validate.js
为什么之前的配置无效?
- 逗号后的空格是关键问题:你原来的配置里,逗号后面加了空格(比如
src/Application/Sonata/**/* ,src/project/...),SonarQube会把src/project/...(带空格)当成一个独立的路径去匹配,显然你的项目里没有带空格前缀的目录,所以规则不生效。 - 关于通配符:你尝试的
src/Application/Sonata/*、src/Application/Sonata/**、src/Application/Sonata/**/*其实都是有效的——*匹配当前目录下的所有文件/子目录,**匹配任意层级的子目录,**/*则匹配该目录下所有层级的所有文件。不过src/Application/Sonata/**已经足够匹配整个目录下的所有内容,你可以根据习惯选择。
额外验证步骤
如果修正后还是不行,可以试试这些方法排查:
- 确认
sonar-project.properties文件放在项目的根目录下,所有路径都是相对这个文件的位置。 - 登录SonarQube的Web界面,进入你的项目设置,找到「Exclusions」选项,手动添加
src/Application/Sonata/**/*测试,看是否能正确匹配到目标文件。 - 检查SonarQube服务器版本,虽然
**通配符是比较通用的规则,但旧版本可能有兼容问题,建议使用较新的LTS版本。
内容的提问来源于stack exchange,提问作者user6830821
相关产品推荐
相关产品推荐

