为啥 SonarQube 排除不适用于 sonar.javascript.file.suffixes 中指定的其他扩展?
Posted
技术标签:
【中文标题】为啥 SonarQube 排除不适用于 sonar.javascript.file.suffixes 中指定的其他扩展?【英文标题】:Why SonarQube exclusions are not applied to additional extensions specified in sonar.javascript.file.suffixes?为什么 SonarQube 排除不适用于 sonar.javascript.file.suffixes 中指定的其他扩展? 【发布时间】:2019-09-05 17:19:36 【问题描述】:在我的 sonar-project.properties 文件中,我有以下设置:
...
sonar.sources=src
sonar.exclusions=src/**/*.test.js
sonar.javascript.file.suffixes=js,jsx
但是我的构建失败并出现以下错误:
ERROR: Caused by: Line 346 of report refers to a file which is not configured as a test file: /tmp/app/src/components/__tests__/filters.test.jsx
我的 jenkins 日志准确报告了 58 files ignored because of inclusion/exclusion patterns
,并使用 find . -name "*.test.js" | wc -l = 58
进行了验证
与 jsx 相同的命令给了我 10 个结果 find . -name "*.test.jsx" | wc -l
,这意味着 sonar.javascript.file.suffixes=js,jsx
不适用于排除属性。
如何排除源文件中同时具有 .js 和 .jsx 扩展名的文件?
【问题讨论】:
【参考方案1】:你做的部分正确。要排除文件,您必须设置sonar.exclusions
。您做到了,但仅适用于 js
文件,因此您的问题的答案是:
...
sonar.sources=src
sonar.exclusions=src/**/*.test.js,src/**/*.test.jsx
sonar.javascript.file.suffixes=js,jsx
sonar.javascript.file.suffixes
通知 JavaScript 分析器哪些文件包含 JavaScript 代码。不影响sonar.exclusions
,所以你必须自己定义所有模式。
【讨论】:
以上是关于为啥 SonarQube 排除不适用于 sonar.javascript.file.suffixes 中指定的其他扩展?的主要内容,如果未能解决你的问题,请参考以下文章
配置 Sonar 以从 Maven pom.xml 中排除文件