Это правило эхолота не срабатывает - PullRequest
0 голосов
/ 10 июля 2019

Я только что установил последнюю версию SonarLint и запустил полный анализ SonarLint в коде нашего нового стажера, который поместил некоторые нестатические неинжектированные элементы в синглтон Spring, как в этом примере:

@Controller
public class HelloWorld {

  private String name = null;

  @RequestMapping("/greet", method = GET)
  public String greet(String greetee) {

    if (greetee != null) {
      this.name = greetee;
    }

    return "Hello " + this.name;  // if greetee is null, you see the previous user's data
  }
}

https://rules.sonarsource.com/java/tag/spring/RSPEC-3749

Поэтому я надеялся, что SonarLint обнаружит это, но нет (у меня есть другие советы, но ничего об этом).

Является ли это правило частьюспециальный набор, который нужно активировать где-нибудь в conf?

1 Ответ

3 голосов
/ 10 июля 2019

Как вы интуитивно подумали, правило squid: S3749 не является частью профиля качества по умолчанию (обычно называется SonarWay ).Следовательно, он не будет выполняться с новой установкой SonarLint без надлежащей настройки.

Оттуда у вас есть два варианта включения правила:

  • Подключите SonarLint к SonarQube экземпляр или SonarCloud , который позволит вам автоматически настраивать и синхронизировать профили качества для всех ваших проектов, выполняя правила, которые ожидаются для каждого проекта
  • В последних версияхSonarLint (я попробовал с версией 4.1 для eclipse), вы должны иметь возможность включать правила непосредственно через конфигурацию плагина, но это не будет делиться с другими, работающими над проектом.

Обратите внимание, чток сожалению, в настоящее время на https://rules.sonarsource.com/ нет возможности просмотреть информацию о профилях качества (сейчас я делаю внутреннюю обратную связь, чтобы исправить это в будущем)

...