Eclipse 与引用的SonarQube服务器相比,SonarLint未显示所有记录
我们正在连接模式下使用SonarQube服务器版本5.3和SonarLint 2.0。 作为一个IDE,我们使用Eclipse Mars 2.0,当我们将SonarQube服务器找到的结果与SonarLint在IDE中找到的结果进行比较时,结果是不同的(示例文件IDE中的274个错误,SonarQube中的826个问题!) 通常的区别之一是“变量可以声明为最终变量” 另外,我的一位同事在IntelliJIdea中使用SonarLint时也遇到了类似的问题(Idea版本2016.1.1,SonarLint 2.0.2,示例文件-与IDE中用于比较的293个错误相同) 我想知道为什么与服务器甚至IDE之间存在这样的差异Eclipse 与引用的SonarQube服务器相比,SonarLint未显示所有记录,eclipse,intellij-idea,sonarqube,eclipse-mars,sonarlint,Eclipse,Intellij Idea,Sonarqube,Eclipse Mars,Sonarlint,我们正在连接模式下使用SonarQube服务器版本5.3和SonarLint 2.0。 作为一个IDE,我们使用Eclipse Mars 2.0,当我们将SonarQube服务器找到的结果与SonarLint在IDE中找到的结果进行比较时,结果是不同的(示例文件IDE中的274个错误,SonarQube中的826个问题!) 通常的区别之一是“变量可以声明为最终变量” 另外,我的一位同事在IntelliJIdea中使用SonarLint时也遇到了类似的问题(Idea版本2016.1.1,Sonar
有人能帮我一下吗?谢谢。首先,SonarQube对您的项目进行全面分析,而SonarLint只分析您打开的文件。所以我真的不知道比较问题数量有什么意义(除非在Eclipse中逐个打开所有文件) 其次,Sonarint比SonarQube显示的问题更少或更多,原因如下:
- 一些基于度量的规则仅在SonarQube中计算。例如:
- 覆盖范围不足(线路或分支)
- 评论密度不足
- 重复代码
- 您可能已经在SonarQube上定义了问题排除,但在SonarLint中尚未考虑这些问题
- 但这很快就会到来
- 您可能已经在SonarQube上定义了源代码排除,但在SonarLint中还没有考虑到这一点
- 但这很快就会到来
因此,遗憾的是,我们只能使用SonarQube提供的开箱即用的规则(即他们的Java插件)。如果你只是单击项目,它将不起作用,你需要进入项目并单击Java文件,一旦你开始点击项目中的Java文件,你会看到SonarLint被激活,并向你显示所有存在的错误。首先,它对我有效,谢谢你的回答。我很感激你的迅速反应。第二,我知道,对于某些问题,您需要分析多个文件(例如,不变性问题等)——但是我不认为您需要专门针对“变量可以声明为最终”类错误进行分析——您应该只需要最接近的上下文,对吗?我对SonarQube没有任何问题排除,源代码排除不会影响区域测试。我也理解关于度量的争论——我也理解那些缺失的。但是,如果我特别关注变量可以被声明为最终变量,我真的不理解为什么不显示这些。好的,阅读@jan-s中关于外部引擎的评论,现在就有意义了。我明白了!非常感谢您对外部引擎的解释,现在它更有意义了。这确实是一个非常好的答案!也许,补救办法是让人们在SonarQube中创建一个新的质量配置文件,利用规则映射,然后激活该配置文件,而不是FindBugs和PMD中的可用配置文件。我想这应该是SonarQube产品的一个新特性要求——将基于FindBugs的概要文件提升到SonarSourceAnalyzer。