我们有一个自定义库,它提供了一个方法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
愉快地报告它使用了类路径中的所有库,
它可以找到所有必需的类并报告没有错误吗?