IntelliJ(和Maven)中的SonarLint根据类路径检测误报

时间:2017-02-23 09:55:28

标签: sonarqube sonarlint sonarlint-intellij

我们有一个自定义库,它提供了一个方法Strings.isFilled,它确保给定的字符串既不为null也不为空。 (https://github.com/scireum/sirius-kernel/blob/master/src/main/java/sirius/kernel/commons/Strings.java#L65

如果我们现在有这样的模式:

public void someMethod(@Nullable String param) {
    if (Strings.isFilled(param)) {
        methodWithNonNullParameter(param);
    }
}

private void methodWithNonNullParameter(@Nonnull String param) {
    LOG.FINE(param);
}

然后sonarlint将触发规则S2637:“@NonNull”值不应设置为null。 然而:如果我们手动设置sonar.java.libraries并且只将库(sirius-kernel.jar)从本地maven存储库中放入,分析就可以了!

是否有可能IntelliJ和Maven都为SonarLint提供了太多的库,以至于它开始忽略一些?使用maven和调试日志记录时, 然后sonar:sonar愉快地报告它使用了类路径中的所有库, 它可以找到所有必需的类并报告没有错误吗?

0 个答案:

没有答案