0

我用一个 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 为不同的语言设置了不同的配置文件,但如果我无法通过分析看到正确的语言,它对我没有多大帮助。

任何人都知道我如何在事后强制使用模块的语言?

4

1 回答 1

0

唔。我考虑只是删除它,但如果我在 stackoverflow 上找到了答案,它会减轻我的痛苦。

蛮力起作用。只需为 moudle 设置您想要的语言和配置文件,并忽略有关此类东西被弃用的投诉。即使您在 UI 中为该语言设置了明确的配置文件,选择一种语言也不会强制使用正确的配置文件 - 所以只需在 sonar-project.properties 文件中声明它。就我而言:module.sonar.language=cpp module.sonar.profile=MY_CPP_PROFILE

将声纳运行器扔在那里,它将使后端成形。

于 2015-05-15T17:24:11.087 回答