java - Sonar 全局 Java Checkstyle 参数覆盖配置文件

标签 java sonarqube checkstyle

今天,我将 Sonar 从版本 3.1.1 升级到了 3.7,遇到了一个问题,花了很多时间来解决它。

我想分享,因为我不知道这是 Sonar 问题还是我们团队使用不当......

安装Sonar 3.7后,我所有的分析都失败了......

原因是“双重检查锁定”Checkstyle 规则已在 Checkstyle 5.6 中删除,但在我的分析中似乎仍在执行。

我检查了 Sonar 中的质量配置文件,但没有为任何配置文件激活该规则...

但是,从永久链接导出的 Checkstyle 配置文件包含该规则!!!!

我尝试使用不带规则的 Checkstyle 配置文件创建新的配置文件,但导出始终相同...

所以我询问了我第一次安装 Sonar 时配置质量配置文件的同事...他在大约 5 分钟内发现了问题...

当他配置配置文件时,他将整个 Checkstyle 配置文件(包含规则)放入全局 Java Checkstyle 参数(配置 > 参数 > Java > Checkstyle > 过滤器)中。 用于我分析的 Checkstyle 配置的导出是“sonar.checkstyle.filters”的值,而不是配置文件配置的真正导出。

所以我想知道这是 Sonar 问题还是我们团队的正常行为和使用不当......

感谢您的帮助!

最佳答案

@Matthieu,这肯定是由于常规设置 > Java > Checkstyle > sonar.checkstyle.filters 属性的错误使用造成的,该属性只能用于激活以下三个过滤器之一:SuppressionCommentFilter、SuppressWithNearbyCommentFilter 和 SuppressionFilter。

关于java - Sonar 全局 Java Checkstyle 参数覆盖配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18385709/

相关文章:

java - 让 Netbeans 平台注释在 Eclipse 中工作

java - OpenL 平板电脑规则存在许多条件内存问题

c++ - 我可以在哪里获得在 Linux 上对 C++ 代码运行 Sonar 库代码分析的步骤

java - 如果违反 Sonar 阈值,如何使 Hudson/Jenkins 失败?

java - SonarQube 未使用的私有(private)构造函数

java - 使用 google_checks 时,Checkstyle Maven 插件执行不会因错误而失败

java - 按下时更改按钮复合绘图

java - 如何为 Java 8 LocalDateTime 编写自定义序列化器

maven - 禁用 checkstyle maven 插件生成的源目录

android - Checkstyle Plugin 不添加 gradle 任务