Sonarqube IntelliJ(和Maven)中的SonarLint根据类路径检测误报
我们有一个自定义库,它提供了一个方法Sonarqube IntelliJ(和Maven)中的SonarLint根据类路径检测误报,sonarqube,sonarlint,sonarlint-intellij,Sonarqube,Sonarlint,Sonarlint Intellij,我们有一个自定义库,它提供了一个方法Strings.isFilled,确保给定的字符串既不是null也不是空的。() 如果我们现在有这样一个模式: public void someMethod(@Nullable String param) { if (Strings.isFilled(param)) { methodWithNonNullParameter(param); } } private void methodWithNonNullParameter(
Strings.isFilled
,确保给定的字符串既不是null也不是空的。()
如果我们现在有这样一个模式:
public void someMethod(@Nullable String param) {
if (Strings.isFilled(param)) {
methodWithNonNullParameter(param);
}
}
private void methodWithNonNullParameter(@Nonnull String param) {
LOG.FINE(param);
}
然后Sonarint将触发规则S2637:“@NonNull”值不应设置为null。但是:如果我们手动设置sonar.java.libraries,并且只将本地maven存储库中的库(sirius kernel.jar)放入其中,那么分析就可以工作了
IntelliJ和Maven是否都为SonarLint提供了太多的库,以至于它开始忽略一些库?使用maven和调试日志时,
然后sonar:sonar
愉快地报告它使用了类路径中的所有库,
它可以找到所有必需的类并报告没有错误