É possível desativar as medidas do sonar ( www.sonarsource.org ) para blocos específicos de código, que não se deseja medir?
Um exemplo é o aviso "Preservar rastreamento de pilha", emitido pelo Findbugs. Ao sair do servidor, talvez eu queira apenas passar a mensagem de volta para o cliente, sem incluir a exceção real que acabei de capturar, se essa exceção for desconhecida para o cliente (porque o cliente não possui o JAR no qual esse exceção foi contida, por exemplo).
@SuppressFBWarnings
(adicionado para evitar conflitosjava.lang.SuppressWarnings
) e também o ignora.Você pode anotar uma classe ou um método com SuppressWarnings
squid: S00112 , neste caso, é um ID de problema do sonar. Você pode encontrar esse ID na interface do usuário do Sonar. Vá para o detalhamento de problemas. Encontre um problema no qual deseja suprimir avisos. Na caixa vermelha do problema no seu código, há um link de regra com a definição de um determinado problema. Depois de clicar, você verá o ID na parte superior da página.
fonte
@SuppressWarnings("findbugs:UI_INHERITANCE_UNSAFE_GETRESOURCE")
.Unsupported @SuppressWarnings("squid:S00112")
. Você pode configurar o Eclipse para ignorar isso, mas um erro de digitação como em@SuppressWarnings("uncheckedd")
não será detectado.Eu recomendo que você tente suprimir avisos específicos usando
@SuppressWarnings("squid:S2078")
.Para suprimir vários avisos, você pode fazê-lo assim
@SuppressWarnings({"squid:S2078", "squid:S2076"})
Há também o
//NOSONAR
comentário que diz ao SonarQube para ignorar todos os erros de uma linha específica.Por fim, se você tiver os direitos adequados para a interface do usuário, poderá emitir um sinalizador como falso positivo diretamente da interface.
A razão pela qual recomendo a supressão de avisos específicos é que é uma prática recomendada bloquear um problema específico em vez de usar
//NOSONAR
e arriscar um problema do Sonar que rasteja no seu código por acidente.Você pode ler mais sobre isso nas Perguntas frequentes
Nota: Gábor Bakos está apontando para as Perguntas mais antigas mais antigas que agora são 404. Este é o primeiro resultado do Google para mim. Quero ajudar mais alguém que possa ter a mesma pergunta.
Edit: 30/06/16 O SonarQube agora se chama SonarLint
Caso você esteja se perguntando como encontrar o número da lula. Basta clicar na mensagem do Sonar (ex.
Remove this method to simply inherit it.
) E o problema do Sonar será expandido.No canto inferior esquerdo, o número da lula (ex.
squid:S1185
Manutenção> Compreensibilidade)Então você pode suprimi-lo
@SuppressWarnings("squid:S1185")
fonte
Use // NOSONAR na linha em que você recebe um aviso se é algo que você não pode ajudar no seu código. Funciona!
fonte
Não consigo encontrar o número do squid no sonar 5.6, com esta anotação também funciona:
fonte
squid
é para o banco de dados Java fornecido pelo Sonar (SonarAnalyzer Java).pmd
echeckstyle
estão em outros repositórios de regras.