【发布时间】:2015-05-14 00:10:26
【问题描述】:
我创建了一个带有单个 sonar-project.properties 的多模块项目。大部分项目都是用 c 编写的,但一个模块是 c++。我将 sonar.language 属性留空,然后运行 sonar-runner 进行分析。
项目和模块是在数据库中创建的,一切看起来都不错,但是当我对相同的代码进行预览时,我在 c++ 项目中遇到了大量新问题。
仔细检查后,我发现 sonarqube 中的模块完全错误 - 它仅包含头文件 (.h),并且大多数问题是使用 C 样式 cmets。似乎该模块被标识为 C 模块,因此所有 .cpp 文件都被忽略了。但是,在预览版中,语言被正确识别,并且在 .cpp 文件中发现了 sonarqube 显然不知道的问题。
我在 UI 中找不到任何地方来更改模块的语言,也无法在我的 sonar-project.profiles 中找到一种方法来强制它。 首先,sonar.language 显然已被弃用,其次,使用 module.sonar.language=cpp 会导致错误:
原因:sonar.profile 设置为“DEFAULT_C”,但与任何语言的任何配置文件都不匹配。请检查您的配置。
DEFAULT_C 是我们通常用于项目的东西,但不是我正在处理的。我通过 UI 为不同的语言设置了不同的配置文件,但如果我无法通过分析看到正确的语言,它对我没有多大帮助。
有人知道我如何在事后强制使用模块的语言吗?
【问题讨论】: