可以将 SonarQube 配置为在 linux 机器上使用 windows 行尾吗?

Can SonarQube be configured to use windows line endings on a linux machine?

我有一个基于 java 的大型项目,托管在 GitLab 上,它是通过 Jenkins 使用 ant 构建的。 jenkins 机器是一个 windows 盒子,并安装了 SonarQube 扫描仪。作为构建过程的一部分,jenkins 机器扫描代码,并与单独的 SonarQube 服务器通信,这是一个 linux 框。

目前我们的 git 存储库只有 windows 行尾,因为它是从 svn 转换而来的。在此配置下,SonarQube 可以检测到代码提交中的新问题,但无法检测到新问题的行号。在 GitLab 中,它将一般评论附加到合并请求,而不是进行常规的内联评论。

我 运行 使用额外的日志记录对 SonarQube 进行分析,发现它无法在检测到问题的行与表示文件其余部分的行数组之间进行字符串比较。

特别是,它看起来像它正在搜索的字符串,在字符串的开头有一个新行,而数组中的字符串,在字符串的末尾有一个新行。

凭直觉,我将 test-b运行ch 中的所有行尾都改为 unix 样式的行尾,并使 windows 框使用 auto-crlf。这解决了问题,SonarQube 能够匹配字符串并针对它在 GitLab 合并请求中检测到的问题提供了在线评论。

由于更改每个文件的每一行以强制 Unix 行结尾比我们想要的更具侵入性,我想知道是否有一些我可能遗漏的配置选项可以让 SonarQube 识别 windows 样式行尾,即使在 linux 机器上 运行?

原来这是 GitLab 插件的一个已知问题,不是 SonarQube 服务器。该问题已在最新的代码库中修复,但不是当前稳定版本的一部分。

详情在这里:https://github.com/gabrie-allaigre/sonar-gitlab-plugin/issues/35