Можно ли отключить измерения гидролокатора ( www.sonarsource.org ) для определенных блоков кода, которые не нужно измерять?
Примером является предупреждение «Сохранить трассировку стека», которое выводит Findbugs. Покидая сервер, я вполне мог бы хотеть передать сообщение обратно клиенту, не считая фактическое исключение, которое я только что перехватил, если это исключение неизвестно клиенту (потому что у клиента нет JAR, в котором это исключение содержалось например).
@SuppressFBWarnings
(добавлено, чтобы избежать конфликтовjava.lang.SuppressWarnings
), а также игнорирует его.Вы можете аннотировать класс или метод с SuppressWarnings
squid: S00112 в данном случае является идентификатором проблемы сонара. Вы можете найти этот идентификатор в пользовательском интерфейсе сонара. Перейти к выпускам Drilldown. Найдите проблему, о которой вы хотите запретить предупреждения. В красном поле проблемы в вашем коде есть ссылка на правило с определением данной проблемы. Как только вы нажмете, что вы увидите идентификатор в верхней части страницы.
источник
@SuppressWarnings("findbugs:UI_INHERITANCE_UNSAFE_GETRESOURCE")
.Unsupported @SuppressWarnings("squid:S00112")
. Вы можете настроить Eclipse на игнорирование этого, но тогда опечатка, такая как in@SuppressWarnings("uncheckedd")
, не будет обнаружена.Я рекомендую вам попытаться подавить определенные предупреждения с помощью
@SuppressWarnings("squid:S2078")
.Для подавления нескольких предупреждений вы можете сделать это следующим образом
@SuppressWarnings({"squid:S2078", "squid:S2076"})
Существует также
//NOSONAR
комментарий, который говорит SonarQube игнорировать все ошибки для конкретной строки.Наконец, если у вас есть соответствующие права для пользовательского интерфейса, вы можете выдать флаг как ложное срабатывание непосредственно из интерфейса.
Причина, по которой я рекомендую скрыть определенные предупреждения, состоит в том, что лучше блокировать конкретную проблему, а не использовать
//NOSONAR
и рисковать ошибкой сонара, возникающей в вашем коде случайно.Вы можете прочитать больше об этом в FAQ
Примечание: Габор Бакос указывает на старый FAQ, который сейчас 404. Это первый результат Google для меня, поэтому я хочу помочь кому-то еще, кто может иметь тот же вопрос
Редактировать: 30.06.16 SonarQube теперь называется SonarLint
Если вам интересно, как найти номер кальмара. Просто нажмите на сообщение Sonar (ex.
Remove this method to simply inherit it.
), И проблема Sonar расширится.В левом нижнем углу он будет иметь номер кальмара (например,
squid:S1185
ремонтопригодность> Понятность)Так что вы можете подавить его
@SuppressWarnings("squid:S1185")
источник
Используйте // NOSONAR в строке, где вы получаете предупреждение, если это то, с чем вы не можете помочь своему коду. Оно работает!
источник
Я не смог найти номер кальмара в сонар 5.6, с этой аннотацией также работает:
источник
squid
для базы данных Java Sonar-sourced (SonarAnalyzer Java).pmd
иcheckstyle
находятся в других хранилищах правил.