今天,我将 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/