Propriedades de análise
SpotBugs permite a customização de vários aspectos das análises suportadas. As propriedades do sistema são usadas para configurar essas opções. Este capítulo descreve as opções de análise configuráveis.
As opções de análise apresentam dois objetivos principais. Primeiro, as opções de análise permitem que você informe ao SpotBugs sobre o significado dos métodos em sua aplicação, para que ele possa produzir resultados mais precisos ou menos avisos falsos. Segundo, as opções de análise permitem que você configure a precisão da análise realizada. A redução da precisão pode economizar memória e tempo de análise, as custas de perder alguns bugs reais, ou produzir mais avisos falsos.
As opções de análise são definidas usando a opção -property
na linha de comando. Por exemplo:
$ spotbugs -textui -property "cfg.noprune=true" myApp.jar
A lista de propriedades de análise configuráveis são mostradas na tabela a seguir:
Nome da propriedade |
Valor |
Significado |
---|---|---|
findbugs.assertionmethods |
Lista separada por vírgulas dos nomes qualificados dos métodos. Por exemplo, “com.foo.MyClass.checkAssertion” |
Esta propriedade especifica os nomes dos métodos que são usados para verificar as asserções do programa. A especificação desses métodos permite que o detector de bug para referência nula evite relatar avisos falsos para valores que são verificados por métodos de asserção. |
findbugs.de.comment |
verdadeiro (true) ou falso (false) |
Se verdadeiro, o detector DroppedException escaneia o código fonte para capturar blocos de comentários vazios e, se for encontrado, o aviso não é reportado. |
findbugs.maskedfields.locals |
verdadeiro (true) ou falso (false) |
Se verdadeiro, emite avisos de baixa prioridade para variáveis locais com campos obscuros. O valor default é falso. |
findbugs.nullderef.assumensp |
verdadeiro (true) ou falso (false) |
Não usado (intenção: se verdadeiro, o detector de referência nula assume que qualquer valor de referência retornado de um método ou passado como parâmetro para um método pode ser nulo. O valor default é falso. Veja que ao habilitar essa propriedade, muitos avisos falsos podem ser gerados.) |
findbugs.refcomp.reportAll |
verdadeiro (true) ou falso (false) |
Se verdadeiro, todas as referências suspeitas usando os operadores == e != para comparações são reportadas. Se falso, apenas um aviso é gerado por método.O valor default é falso” |
findbugs.sf.comment |
verdadeiro (true) ou falso (false) |
Se verdadeiro, o detector SwitchFallthrough apenas reporta avisos para casos onde o código fonte não tem comentários com as palavras “fall” ou “nobreak”. (Um caminho de origem preciso deve ser usado para esse recurso funcionar corretamente.) Isso ajuda a encontrar casos onde a fallthrough não é intencional |