Com o PMD, se você deseja ignorar um aviso específico, pode usar // NOPMD
para que essa linha seja ignorada.
Existe algo semelhante para o FindBugs?
Com o PMD, se você deseja ignorar um aviso específico, pode usar // NOPMD
para que essa linha seja ignorada.
Existe algo semelhante para o FindBugs?
A abordagem inicial do FindBugs envolve arquivos de configuração XML, também conhecidos como filtros . Isso é realmente menos conveniente do que a solução PMD, mas o FindBugs funciona no bytecode, não no código fonte, portanto, os comentários obviamente não são uma opção. Exemplo:
<Match>
<Class name="com.mycompany.Foo" />
<Method name="bar" />
<Bug pattern="DLS_DEAD_STORE_OF_CLASS_LITERAL" />
</Match>
No entanto, para resolver esse problema, o FindBugs mais tarde introduziu outra solução baseada em anotações (consulte SuppressFBWarnings
) que você pode usar na classe ou no nível do método (mais conveniente que XML na minha opinião). Exemplo (talvez não seja o melhor, mas, bem, é apenas um exemplo):
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
value="HE_EQUALS_USE_HASHCODE",
justification="I know what I'm doing")
Observe que, desde que o FindBugs 3.0.0 SuppressWarnings
foi preterido em favor do @SuppressFBWarnings
por causa do conflito de nome com o Java SuppressWarnings
.
<dependency> <groupId>net.sourceforge.findbugs</groupId> <artifactId>annotations</artifactId> <version>1.3.2</version> <scope>provided</scope> </dependency>
<dependency><groupId>com.google.code.findbugs</groupId><artifactId>annotations</artifactId><version>3.0.0</version><scope>provided</scope></dependency>
ao POM, se quiserem usar@SuppressFBWarnings
.Como outros mencionados, você pode usar a
@SuppressFBWarnings
anotação. Se você não deseja ou não pode adicionar outra Dependência ao seu código, você pode adicionar a Anotação ao seu Código, o Findbugs não se importa em qual Pacote a Anotação está.Fonte: https://sourceforge.net/p/findbugs/feature-requests/298/#5e88
fonte
Aqui está um exemplo mais completo de um filtro XML (o exemplo acima por si só não funcionará, pois mostra apenas um trecho e faltam as
<FindBugsFilter>
tags de início e fim):Se você estiver usando o plug-in Android Studio FindBugs, navegue até o arquivo de filtro XML usando Arquivo-> Outras configurações-> Configurações padrão-> Outras configurações-> FindBugs-IDEA-> Filtro-> Excluir arquivos de filtro-> Adicionar.
fonte
Update Gradle
Localize o relatório FindBugs
Encontre a mensagem específica
Importar a versão correta da anotação
Adicione a anotação diretamente acima do código incorreto
Veja aqui para mais informações: findbugs Spring Annotation
fonte
compile 'net.sourceforge.findbugs:annotations:1.3.2'
sintaxe, que é mais curta.testCompile 'com.google.code.findbugs:annotations:3.0.0'
nome da nota e da anotação@SuppressFBWarnings
No momento em que escrevemos isso (maio de 2018), o FindBugs parece ter sido substituído pelo SpotBugs . O uso da
SuppressFBWarnings
anotação requer que seu código seja compilado com o Java 8 ou posterior e introduz uma dependência no tempo de compilaçãospotbugs-annotations.jar
.O uso de um arquivo de filtro para filtrar regras do SpotBugs não apresenta esses problemas. A documentação está aqui .
fonte
Embora outras respostas aqui sejam válidas, elas não são uma receita completa para resolver isso.
No espírito de perfeição:
Você precisa ter as anotações findbugs no seu arquivo pom - elas são apenas tempo de compilação, para que você possa usar o
provided
escopo:Isso permite o uso de
@SuppressFBWarnings
outra dependência que fornece@SuppressWarnings
. No entanto, o acima exposto é mais claro.Em seguida, adicione a anotação acima do seu método:
Por exemplo
Isso inclui o nome do bug e também uma razão pela qual você está desativando a verificação.
fonte
Vou deixar este aqui: https://stackoverflow.com/a/14509697/1356953
Observe que isso funciona,
java.lang.SuppressWarnings
portanto, não é necessário usar uma anotação separada.fonte
java.lang.SuppressWarnings
não pode trabalhar Possui retenção de origem, portanto não é visível para encontrar erros.