// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Análise de Código Estático no Editor de Java NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Análise de Código Estático no Editor de Java NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Análise de Código Estático no Editor de Java NetBeans IDE

Jan Lahoda, Alyona Stashkova

O Editor Java do NetBeans IDE tem uma nova funcionalidade de análise de código estático, que é uma ferramenta para localizar possíveis problemas e detectar inconsistências no código-fonte.

Neste tutorial, você aprenderá como executar análise estática de seu código Java usando FindBugs e Dicas Java NetBeans sem realmente executar suas aplicações.



image::images/netbeans-stamp.png[title="O conteúdo desta página se aplica ao NetBeans IDE 8.0"]



== Requisitos

*Para concluir este tutorial, você precisa dos seguintes recursos e softwares.*

|===
|Software ou Recurso |Versão Necessária 

|link:http://netbeans.org/downloads/index.html[+NetBeans IDE+] |Versão 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit+] (JDK) |Versão 7 e superior 

|link:https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip[+library.zip+] |Projeto NetBeans 

|link:http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar[+jsr305-2.0.0.jar +] |Solicitação de Especificação Java pretendida para melhorar a eficácia das ferramentas de análise estática 
|===

*Observação:*  ``jsr305-2.0.0.jar``  está incluído no  ``library.zip``  para a finalidade deste tutorial.

Se você estiver usando outro projeto NetBeans, o link:http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar[+jsr305-2.0.0.jar+] deverá ser submetido a download e adicionado à pasta Bibliotecas de seu projeto no IDE, conforme mostrado a seguir:

1. Clique com o botão direito na pasta Bibliotecas e escolha Adicionar JAR/Pasta no menu pop-up.
2. Na caixa de diálogo Adicionar JAR/Pasta, especifique o caminho para o arquivo  ``jsr305-2.0.0.jar``  submetido a download e clique em Abrir.

image::images/jar.png[]


== Configurando o Ambiente do Tutorial

Além do software necessário listado acima, você deve ter instalado em seu computador o seguinte:

* O arquivo link:https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip[+library.zip+] deve ser descompactado na sua pasta de projeto e aberto no NetBeans IDE.
* O plug-in FindBugs deve ser submetido a download e instalado no NetBeans IDE como segue:
1. Escolha Origem > Inspecionar o menu IDE principal.
2. Na caixa de diálogo Inspecionar, clique em Instalar.

[.feature]
--
image::images/inspect-small.png[role="left", link="images/inspect.png"]
--



. Na caixa de diálogo Instalador, clique em Próximo para continuar com a instalação.

[.feature]
--
image::images/plugin-small.png[role="left", link="images/plugin.png"]
--



. Revise o acordo de licença, selecione a opção do contrato de licença e clique em Instalar.


. Quando a instalação for concluída, clique em Finalizar.


== Usando Configurações Predefinidas

Você pode usar as seguintes configurações predefinidas ao inspecionar seu código no NetBeans IDE:

* <<all,Todos os Analisadores>>
* <<hints,Dicas Java NetBeans>>
* <<fb,FindBugs>>
* <<default,Default>>


=== Executando Todos os Analisadores

A configuração  ``Todos os Analisadores``  implanta todas as ferramentas de análise de código estático disponível no IDE.

*Para executar a configuração de  ``Todos os Analisadores`` , execute as seguintes etapas: *

1. Escolha Origem > Inspecionar na barra de ferramentas do IDE principal.
2. Na lista drop-down Escopo da caixa de diálogo Inspeção, selecione  ``Projeto Atual (biblioteca)`` .
3. Na lista drop-down Configuração, selecione a configuração  ``Todos os Analisadores`` .

[.feature]
--
image::images/allconfig-small.png[role="left", link="images/allconfig.png"]
--

*Observação:* você precisa instalar o plug-in <<plugin,Findbugs>> para executar esta configuração pela primeira vez.



. Clique em Inspecionar.
Os resultados da análise são exibidos na janela Inspetor como uma view em árvore à esquerda.

[.feature]
--
image::images/all-small.png[role="left", link="images/all.png"]
--

A descrição da atualmente selecionada na view em árvore Localizar é exibida à direita.

[.feature]
--
image::images/alldescription-small.png[role="left", link="images/alldescription.png"]
--

*Observação:* se você quiser deixar alguma parte de seu código que está reportado como problemáticos como está, o IDE permite que você suprima a advertência deste código para deixá-lo sem nenhuma alteração. Você pode clicar duas vezes em uma advertência na view em árvore da Janela Inspetor para ir para o Editor de Código-fonte. Pressione Alt-Enter, clique na seta preta apontando para a direita no final da dica exibida, e escolha  ``SuppressWarning - _(nome da advertência)_`` .

[.feature]
--
image::images/suppress-small.png[role="left", link="images/suppress.png"]
--


=== Verificando Código Java com Dicas Java NetBeans

A configuração de  ``Dicas Java NetBeans``  disponível no IDE permite que você verifique se as regras padrão de codificação predefinidas foram atendidas pelo Código-fonte em consideração. Em outras palavras, ele se aplica um conjunto de Dicas Java NetBeans (também conhecido como inspeções do código) para seus arquivos de código-fonte Java.

*Para executar a configuração de  ``Dicas Java NetBeans`` , conclua as seguintes etapas: *

1. Escolha Origem > Inspecionar na barra de ferramentas do IDE principal.
2. Na lista drop-down Escopo da caixa de diálogo Inspecionar, selecionar  ``Abrir Projetos``  (se tiver apenas um projeto da  ``biblioteca``  aberto no IDE) ou  ``Projeto Atual (biblioteca)`` .

*Observação:* você pode definir um escopo (um arquivo, pacote ou projeto) para a configuração de  ``Dicas Java NetBeans`` .



. Selecione o botão de rádio Configuração e escolha  ``Dicas Java NetBeans``  na lista drop-down.

[.feature]
--
image::images/hints-small.png[role="left", link="images/hints.png"]
--



. Clique em Inspecionar.
O IDE exibe a view em árvore com os resultados da análise, com a configuração  ``Dicas Java NetBeans``  na Janela Inspetor.

image::images/hintsconfig.png[]



. Na Janela Inspetor, clique no botão <<categorize,Categorizar>> na barra de ferramentas à esquerda para exibir os problemas agrupados em categorias.

image::images/catview.png[]

A tabela a seguir exibe os comandos disponíveis na Janela Inspetor.
|===

|Ícone |Nome |Função 

|image::images/refreshbutton.png[] |*Atualizar* |Exibe uma lista atualizada dos resultados da análise estática. 

|image::images/upbutton.png[] |*Problema Anterior* |Exibe o problema anterior na lista de resultados da análise estática. 

|image::images/downbutton.png[] |*Próximo Problema* |Exibe o seguinte problema na lista de resultados da análise estática. 

|image::images/categorizebutton.png[] |
*Categorizar* |Alterna a view contraída dos problemas detectados em um arquivo, projeto ou pacote ou a view categorizada de todos os problemas detectados. 
|===


=== Localizando Problemas em Potencial no Código Java com Findbugs

A configuração  ``FindBugs``  disponível no IDE permite localizar uma ampla variedade de problemas potenciais em seu código. Ele chama a ferramenta FindBugs de código-fonte aberta popular para análise de código em Java. O relatório de erros é gerado e é exibido na janela do Inspetor do NetBeans IDE, que categoriza todos os problemas encontrados e permite navegação direta de erros no relatório para o código suspeito. Você também pode ler uma descrição do erro na janela adjacente ou revisá-la na página link:http://findbugs.sourceforge.net/bugDescriptions.html[+Descrições de Erro de FindBugs+] pelo ponteiro fornecido na parte superior do quadro esquerdo.

*Observação:* você precisa instalar o plug-in <<plugin,Findbugs>> para executar esta configuração pela primeira vez.

*Para identificar possíveis erros em seu código Java com a configuração  ``FindBugs`` , execute as seguintes etapas:*

1. Abrir o projeto da  ``biblioteca``  no NetBeans IDE e escolha Código-fonte > Inspecionar na barra de ferramentas principal.
2. Na lista drop-down Escopo da caixa de diálogo Inspeção, selecione  ``Projeto Atual (biblioteca)`` .

*Observação:* Você pode inspecionar um arquivo, pacote ou projeto(s) com a configuração  ``FindBugs`` .



. Na caixa de diálogo Inspecionar, selecione a configuração  ``FindBugs`` .

[.feature]
--
image::images/fb-small.png[role="left", link="images/fb.png"]
--



. Clique no botão Inspecionar para iniciar a análise de código estático.
O resultado da análise de código estático é exibido na Janela do Inspetor abaixo do editor de código-fonte.
A descrição do erro selecionado é exibida no quadro à direita.

[.feature]
--
image::images/inspector-small.png[role="left", link="images/inspector.png"]
--



. Se preferir, clique no botão <<categorize,Categorizar>> na barra de ferramentas à esquerda para exibir os erros agrupados em categorias.

image::images/fbcat.png[]

*Observações:*

* Se você clica duas vezes em um problema na lista expandida, o IDE exibe o problema relatado no editor de código-fonte. 
pressione Alt-Enter para exibir a descrição do erro no código-fonte.

[.feature]
--
image::images/source-editor-small.png[role="left", link="images/source-editor.png"]
--

* Erros potenciais são destacados no código com ícones do ponto de exclamação (image::images/exclamation.png[]) na margem à esquerda do Editor de Código-fonte.

*Para ativar FindBugs no Editor Java, conclua as seguintes etapas:*

1. Escolha Ferramentas > Opções na barra de ferramentas do IDE principal.
2. Selecione a guia Editor e escolha Dicas.
3. Escolha  ``FindBugs``  na lista drop-down Idioma.

[.feature]
--
image::images/fb-editor-small.png[role="left", link="images/fb-editor.png"]
--



. Selecione a opção Executar FindBugs no Editor.


. Clique em OK.
Se você agora pressionar Alt-Enter o código-fonte onde um erro é reportado e clique na seta preta apontando para a direita no final da dica exibida, o IDE mostra algumas opções de correção para um possível erro.

[.feature]
--
image::images/fbenabled-small.png[role="left", link="images/fbenabled.png"]
--


=== Personalizando uma Configuração Default

Enquanto trabalha em seu código pode ser necessário personalizar uma configuração predefinida que inclui suas próprias dicas Java NetBeans ou erros do FindBugs.

*Para adaptar uma configuração  ``Default``  predefinida em suas próprias necessidades, conclua as etapas a seguir:*

1. Escolha Origem > Inspecionar na barra de ferramentas do IDE principal.
2. Na caixa de diálogo Inspecionar, selecione o botão de rádio Configuração e selecione a configuração  ``Padrão`` .
3. Clique em Gerenciar.
O IDE exibe a caixa de diálogo Configurações.

image::images/configurations-db.png[]



. Garantir  ``Default``  é selecionado na lista drop-down Configurações.


. Na lista drop-down Analisador, selecione o analisador  ``Conformidade de Perfis do JRE 8`` ,  ``Dicas Java Netbeans``  ou  ``FindBugs`` .


. Dependendo da escolha do analisador na etapa anterior, selecione o perfil a ser validado, as inspeções ou os erros que você precisa incluir na configuração  ``Padrão`` .

[.feature]
--
image::images/select-inspections-small.png[role="left", link="images/select-inspections.png"]
--



. Clique em OK para salvar sua configuração  ``Default`` .


== Criando e Deletando Configurações

Você pode criar e deletar suas próprias configurações para ser usada na análise estática de seu código Java.

*Para criar uma configuração, execute as seguintes etapas:*

1. Escolha Origem > Inspecionar na barra de ferramentas do IDE principal.
2. Na caixa de diálogo Inspecionar, selecione o botão de rádio Configuração e selecione a configuração  ``Padrão`` .
3. Clique em Gerenciar.
4. Na caixa de diálogo Configurações, clique na seta preta no fim da lista drop-down Configurações e escolha Novo.

image::images/newconfig.png[]

Uma configuração  ``newConfig``  será criada e adicionada à lista drop-down Configurações.

image::images/newconfig-created.png[]



. Na lista drop-down Analisador, escolha  ``Conformidade de Perfis do JRE 8`` ,  ``Dicas Java Netbeans``  ou  ``FindBugs`` .


. Especifique o perfil, as inspeções ou os erros a serem incluídos na sua própria configuração.


. Clique em OK para salvar suas edições e fechar a caixa de diálogo Configurações.
A configuração  ``newConfig``  criada está disponível na lista drop-down Configuração da caixa de diálogo Inspecionar.

[.feature]
--
image::images/newconfig-inspect-small.png[role="left", link="images/newconfig-inspect.png"]
--

*Observação:* para renomear uma configuração, selecione a configuração  ``newConfig``  na lista drop-down Configurações, clique na seta preta no fim da lista drop-down Configurações e selecione Renomear. Digite um novo nome (por exemplo,  ``renamedconfig`` ) e pressione Enter para salvar as edições.

image::images/renamedconfig.png[]

*Para deletar uma configuração, execute as seguintes etapas:*

1. Escolha Origem > Inspecionar na barra de ferramentas do IDE principal.
2. Na caixa de diálogo Inspecionar, selecione o botão de rádio Configuração e selecione a configuração a ser excluída ( ``renamedConfig``  neste exemplo).
3. Clique em Gerenciar.
4. Na caixa de diálogo Configurações, clique na seta preta no fim da lista drop-down Configurações e escolha Excluir.

image::images/delete.png[]



. Na caixa de diálogo Deletar Configuração, clique em Sim para confirmar a exclusão da configuração.

image::images/delete-confirm.png[]

A configuração  ``renamedConfig``  é deletada da lista de Configurações.

*Observação:* Consulte o link:http://platform.netbeans.org/tutorials/nbm-java-hint.html[+Tutorial do Módulo de Dicas Java NetBeans+] para obter informações sobre como criar um módulo NetBeans que fornece uma ou mais dicas Java NetBeans.


== Executando Inspeções Únicas

Você pode inspecionar seu código para uma determinada deficiência em seu código-fonte usando a funcionalidade de análise de código estático no NetBeans IDE.

*Para detectar uma inconsistência específica ou problema em seu código-fonte Java com uma inspeção única, conclua as seguintes etapas:*

1. Escolha Origem > Inspecionar o menu IDE principal.
2. Na lista drop-down Escopo da caixa de diálogo Inspecionar, selecione um arquivo, pacote ou projeto a ser inspecionado.
3. Selecione Inspeção Única e faça o seguinte:
* Na lista drop-down de Inspeção Simples, role e selecione uma dica _única_ do Java Netbeans ou erro de FindBugs para ser usado na análise do código-fonte.

[.feature]
--
image::images/single-inspection-small.png[role="left", link="images/single-inspection.png"]
--

* Clique em Procurar para abrir a caixa de diálogo Configurações e, na lista drop-down Analisador, especifique o analisador e, em seguida, escolha um perfil (para o analisador Conformidade de Perfil do JRE 8), uma _única_ inspeção (para o analisador Dicas Java NetBeans) ou um _único_ erro (para o analisador FindBugs) para uso na análise de código-fonte. Clique em OK para fechar a caixa de diálogo Configurações.

[.feature]
--
image::images/hint-inspection-small.png[role="left", link="images/hint-inspection.png"]
--



. Na caixa de diálogo Inspecionar, clique em Inspecionar para executar a análise de código-fonte. 
Após a operação Inspecionar ser concluída, as dicas que podem ser aplicadas a seu código ou erros que foram encontradas são exibidas na janela Inspetor abaixo o Editor de Código-fonte.


== Resumo

Este tutorial abrange mais frequente usos da funcionalidade na análise de código estático NetBeans IDE. Observe que com a funcionalidade de análise de código estático você também pode executar as refatorações personalizadas no escopo do projeto, ou aplicar determinadas configurações de refatoração à diversos projetos abertos no IDE, etc..

<<top,início>>

link:/about/contact_form.html?to=3&subject=Feedback:%20Static%20Code%20Analysis%20in%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+]



== Consulte Também

Para ver o material relacionado, consulte os seguintes documentos:

* link:code-inspect-screencast.html[+Vídeo da Funcionalidade Código Estático no NetBeans IDE+]
* link:http://wiki.netbeans.org/Java_Hints[+Lista Completa de Dicas Java NetBeans+]
* link:http://wiki.netbeans.org/JavaDeclarativeHintsDescriptionSketch[+Descrição de Dicas Declarativas do Java NetBeans+]
* link:http://platform.netbeans.org/tutorials/nbm-java-hint.html[+Tutorial do Módulo de Dicas Java NetBeans+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG613[+Usando Dicas de Análise de Código-fonte e Refatoração+] em _Desenvolvendo Aplicações com o NetBeans IDE_

<<top,início>>

