Sonarqube SonarScanner 忽略 React 项目中的 Javascript 文件

Posted

技术标签:

【中文标题】Sonarqube SonarScanner 忽略 React 项目中的 Javascript 文件【英文标题】:Sonarqube SonarScanner ignores Javascript files in a React project 【发布时间】:2020-02-27 06:35:09 【问题描述】:

我在 Windows 10 操作系统中有一个 ReactJS Javascript 项目工作区,我想使用 SonarScanner 对其运行代码分析。我已设置并验证 SonarScanner 运行正常。我还在 SonarScanner/conf/sonar-scanner.properties 文件中设置了“sonar.host.url”。每次运行都能看到扫描结果。

然后我在我的工作区中添加了“sonar-project.properties”文件。这些是“sonar-project.properties”文件中的设置:

sonar-project.properties
# must be unique in a given SonarQube instance
sonar.projectKey=Project1

# --- optional properties ---

# defaults to project key
sonar.projectName=React Webapp
# defaults to 'not provided'
#sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Defaults to .
sonar.projectBaseDir=C:/code/model-group-webapp
sonar.sources=src

# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8

然后我运行 sonar-scanner 命令,如“$sonar-scanner -X”。

我可以在日志中看到已读取 javascript 文件,但这些文件的索引语言为“null”。

13:56:46.764 INFO: Source paths: src
13:56:46.765 INFO: Source encoding: windows-1252, default locale: en_US
13:56:46.768 INFO: Index files
13:56:46.794 DEBUG: 'src/App.js' indexed with language 'null'
13:56:46.796 DEBUG: 'src/App.test.js' indexed with language 'null'
13:56:46.796 DEBUG: 'src/config/config.js' indexed with language 'null'
13:56:46.798 DEBUG: 'src/EditPanel.js' indexed with language 'null'
13:56:46.800 DEBUG: 'src/Filter.js' indexed with language 'null'
13:56:46.800 DEBUG: 'src/index.css' indexed with language 'null'
13:56:46.805 DEBUG: 'src/index.js' indexed with language 'null'
13:56:46.805 DEBUG: 'src/logo.svg' indexed with language 'null'
13:56:46.810 DEBUG: 'src/serviceWorker.js' indexed with language 'null'

我还注意到 Javascript 不在日志中的可用语言中。它只显示了 Java:

14:29:42.889 INFO: Load project repositories (done) | time=125ms
14:29:42.990 DEBUG: Available languages:
14:29:42.993 DEBUG:   * Java => "java"

在 Sonarqube 服务器中,该项目显示 0 个错误和漏洞,没有源代码。

这里缺少什么配置?

【问题讨论】:

【参考方案1】:

如果你是从詹金斯那里跑的, 添加代码文件的srs路径,

sonar.language=js (optional)
sonar.sources=./src/main/TestApp 

【讨论】:

以上是关于Sonarqube SonarScanner 忽略 React 项目中的 Javascript 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用SonarQube+SonarScanner对Java代码进行扫描(Windows环境)

sonar+Jenkins注意的关键点或坑及sonar规则忽略或修改

SonarScanner 整合 SonarQube 代码质量检查完美方案

MySQL5.7+SonarQube7.4+SonarScanner4.2安装与使用

gitlab+jenkins+maven+docker持续集成——sonarqube及sonarscanner代码审查

SonarScanner (C#) 不支持代码内 StyleCop 警告抑制