Usando o SpotBugs como plugin do Eclipse

O plugin do SpotBugs para o Eclipse permite que o SpotBugs seja usado dentro do IDE Eclipse. O plugin do SpotBugs para o Eclipse foi generosamente contribuído por Peter Friese. Phil Crosby e Andrey Loskutov contribuíram com grandes melhorias para o plugin.

Requisitos

Para usar o SpotBugs para o Eclipse, você precisa do Eclipse Neon (4.6) ou superior.

Instalação

We provide update sites that allow you to automatically install SpotBugs into Eclipse and also query and install updates. There are four different update sites:

https://spotbugs.github.io/eclipse/

Fornece apenas as versões oficiais do plugin SpotBugs para o Eclipse.

https://spotbugs.github.io/eclipse-candidate/

Fornece as versões oficiais e candidatas do plugin SpotBugs para o Eclipse.

https://spotbugs.github.io/eclipse-latest/

Fornece o latest do plugin SpotBugs para o Eclipse construído a partir da branch master.

https://spotbugs.github.io/eclipse-stable-latest/

Fornece o latest do plugin SpotBugs para o Eclipse construído a partir da branch release-3.1.

Ou apenas use o Eclipse marketplace para instalar o plugin do SpotBugs para o Eclipse.

Usando o plugin

Para começar, clique com o botão direito em um projeto Java no explorador de pacotes (Package Explorer) e selecione a opção “Spot Bugs”. O SpotBugs será executado e os marcadores de problemas (exibidos nas janelas de código-fonte e também na visualização de problemas do Eclipse) apontarão para os locais em seu código que foram identificados como instâncias potenciais de padrões de bug.

Você também pode executar SpotBugs em arquivos java existentes (jar, ear, zip, war etc.). Basta criar um projeto Java vazio e anexar arquivos ao classpath do projeto. Com isso, agora você pode clicar com o botão direito do mouse no nó do arquivo no Package Explorer e selecionar a opção rotulada “Spot Bugs”. Se você configurar adicionalmente os locais do código-fonte para os binários, o SpotBugs também vinculará os avisos gerados aos arquivos-fonte corretos.

Você pode personalizar a forma como os SpotBugs é executado abrindo a caixa de diálogo propriedades (Properties) de um projeto Java e escolhendo a página de propriedades “SpotBugs”. As opções que você pode escolher incluem:

  • Ative ou desative a caixa de seleção “Executar SpotBugs automaticamente”. Quando ativada, o SpotBugs será executado sempre que você modificar uma classe Java dentro do projeto.

  • Escolha a prioridade mínima de aviso e as categorias de bug. Essas opçõesdefinem os avisos que serão mostrados. Por exemplo, se você selecionar a prioridade de aviso média “”Medium”, apenas avisos de prioridade média e altaserão mostrados. Da mesma forma, se você desmarcar a caixa de seleção “Style”, nenhum avisona categoria estilo será exibido.

  • Selecione os detectores. A tabela permite que você selecione quais detectores deseja habilitar para o seu projeto.

Estendendo o plugin do Eclipse (desde 2.0.0)

O plug-in do Eclipse suporta a contribuição de detectores do SpotBugs personalizados (consulte também AddedDetectors.txt para obter mais informações). Existem duas maneiras de contribuir com plug-ins personalizados para o Eclipse:

  • Os detectores padrão do SpotBugs detector podem ser configurados via Window Preferences Java FindBugs Misc. Settings Custom Detectors. Basta especificar os locais das bibliotecas de qualquer plugin adicional. O benefício desta solução é que os pacotes de detectores existentes podem ser utilizados “as is”, e você pode rapidamente verificar a qualidade de detectores terceiros. A desvantagem é que você precisa aplicar as configurações em cada workspace do Eclipse, e as configurações não podem ser compartilhadas entre membros de um time.

  • É possível contribuir com detectores customizados por meio do mecanismo de extensões padrão do Eclipse.

    Por favor, verifique a documentação do ponto de extensão eclipsePlugin/schema/detectorPlugins.exsd para saber como atualizar o plugin.xml. Os detectores do plugin FindBugs podem ser facilmente estendidos “extended” para serem detectores do SpotBugs. Você só precisa adicionar o META-INF/MANIFEST.MF e plugin.xml ao jar e atualizar seus scripts de construção para não substituir o MANIFEST.MF durante a construção.

    O benefício desta solução é que para determinada instalação (compartilhada) do Eclipse, cada membro da equipe tem exatamente o mesmo conjunto de detectores e não há necessidade de configurar mais nada. A pré-condição (muito pequena) é que você deve converter seu pacote de detectores existente para o plug-in do Eclipse. Você pode fazer isso até mesmo para pacotes de detectores de terceiros. Outro grande diferencial é a capacidade de estender o caminho de classes do SpotBugs padrão em tempo de execução com bibliotecas de terceiros (consulte AddedDetectors.txt para mais informações).

Troubleshooting

Esta seção lista problemas comuns com o plugin e (se conhecido) como resolvê-los.

  • Se você vir caixas de diálogo de erro OutOfMemory após iniciar a análise do SpotBugs no Eclipse, aumente a memória disponível da JVM: altere o eclipse.ini e adicione as linhas abaixo ao final do arquivo:

    -vmargs
    -Xmx1000m
    

    Importante: os argumentos de configuração começando com a linha -vmargs devem ser as últimas linhas noarquivo eclipse.ini, e é permitido apenas um argumento por linha.

  • Se você não vir nenhum marcador de problema do SpotBugs (em suas janelas de origem ouna Visualização de Problemas), você pode configurar os filtros da sua Visualização de Problemas. Veja Q6 at FAQ para mais informações.