示例代码:
public static String foo(){
return bar();
}
private static String bar(){
return "";
}
SonarQube将bar()函数标记为未使用,但SonarLint(IntelliJ,版本2.7.1.1640)工作正常。 我已经安装了最新版本的SonarQube(6.2)和最新版本的Java插件(4.5.0.8398),但仍然有这个问题 - 我认为这个问题已修复? 这是某种回归错误吗? 谢谢你的帮助。
更新:
上面的示例太简单了,我设法指定问题:它看起来像是传递给函数的原始参数的问题,例如,这被标记为未使用:
public static String foo( SomeClass a ) {
return bar( a.getChar() );
}
private static String bar( char a ) {
return String.valueOf( a );
}
如果我将硬编码值传递给bar(如bar('a')),一切正常(或者甚至当我传递类似bar(“string”.charAt(0)))时。 SomeClass.getChar()返回'char',因此它不是装箱基元的问题。
解: 正如@Michael - SonarSource团队建议的那样,依赖项字节码存在问题。我禁用了teamcity Sonar runner插件,现在通过Gradle插件运行sonarqube。
答案 0 :(得分:-2)
很多时候声纳服务器和声纳lint的同步存在一些问题,它不是这个问题,它也在其他问题中复制,如重复的code.refer声纳服务器并尝试解决