我正在使用SonarQube为我的工作项目。在我们的项目中,我们有一个包含大量文件和文件夹的存储库。我想只过滤掉python文件(.py文件)。
我的目标是只分析文件夹repo/src
中的.py文件。
我试过使用通配符,但是没有用。
以下是我尝试过的两件事:sonar.sources=repo/src/**/*.py
sonar.sources=repo/src/**.py
只传递代码所在的整个文件夹(repo/src/)的选项有效,但是我的工作为SonarQube支付的计划不允许我们分析整个项目,因此为什么我只想分析python文件。
我做错了什么?谁能告诉我这里我误解了什么?
尝试在sonar.sources
之外指定sonar.exclusions
。
之前,有sonar.language
,您可以将其设置为Python的py
:
设置要分析的源代码语言。浏览插件库页面以获得所有可用语言的列表。如果未设置,将触发多语言分析
但是long已被弃用,现在在最新版本中没有任何作用。从一个线程Sonarqube论坛,什么是替代声纳。语言属性在当前版本的sonarqube?:
另一种选择是不使用它。
…
现在,另一方面,如果你想防止项目中的其他语言被分析,那么你应该做这些事情之一:
- 配置
sonar.sources
不包含这些文件,假设这可以方便地完成- 设置排除
- 作为最后一招,还可以选择在项目级别配置语言文件后缀以不识别其他语言的文件(例如将Java文件后缀设置为
.foo
)
同一主题上的回复说这对他们有效:
因此,首先,更改所以在我的例子中,排除属性是这样的
sonar.exclusions=**/*.java,**/*.jar
sonar.sources
以指定目录.包含主源文件的目录的逗号分隔路径。
sonar.sources=repo/src
然后指定要忽略的文件扩展名sonar.exclusions
。
我们在我们的项目中有相同的设置:
sonar.sources=app
sonar.exclusions=**/*.html,**/*.js
您可以从声纳扫描仪日志中检查是否有一些文件被排除:
INFO: Indexing files...
INFO: Project configuration:
INFO: Excluded sources: **/*.html,**/*.js
INFO: Excluded sources for coverage: tests/*
INFO: 266 files indexed
INFO: 24 files ignored because of inclusion/exclusion patterns
INFO: 1 file ignored because of scm ignore settings
...
(我们正在使用SonarQube服务器9.5.0.56709,SonarScanner 4.3.0.2102)