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