// 
//     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.
//

= Suporte aos Processadores de Anotação no NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Suporte aos Processadores de Anotação no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Suporte aos Processadores de Anotação no NetBeans IDE

_Amostra contribuída por Jesse Glick._



image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0"]

Esse tutorial de duas partes demonstra como é possível anexar processadores de anotação a um projeto e utilizá-los enquanto estiver trabalhando no código no IDE. O NetBeans IDE possui suporte incorporado a processadores de anotações personalizados. Agora é possível especificar convenientemente processadores de anotação para serem executados com o projeto e visualizar os resultados do processo de anotação diretamente no editor Java usando o recurso autocompletar código e navegação.

A link:annotations-lombok.html[+primeira parte do tutorial+] exibe a utilização do processador de anotação de terceiros, link:http://projectlombok.org/[+Projeto Lombok+], no NetBeans IDE.

A link:annotations-custom.html[+segunda parte do tutorial+] fornece explicações sobre como adicionar um processador de anotação de autoescrita em um projeto. O código amostra para essa parte do tutorial é uma colaboração de Jesse Glick.

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

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

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |7.2, 7.3, 7.4, 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 7 ou 8 
|===


== Introdução

_Anotações_ são mecanismos da linguagem de programação Java que são utilizados para manter metadados sobre os elementos da aplicação. Anotações mantêm metainformações sobre como os elementos anotados devem ser processados pelo compilador, durante uma implantação ou runtime. Em outras palavras, anotações são comentários do código que podem ser processadas por outros programas e ferramentas.

É possível utilizar anotações personalizadas para realizar uma variedade de tarefas: marcar partes da aplicação (por exemplo, a informação de direitos autorais, métodos de teste, etc.), gerar código automaticamente, fazer parsing das opções de linha de comandos, desenvolver Web services, e outros. As informações sobre como anotações personalizadas devem ser processadas são passadas para o compilador Java por meio dos processadores de anotação personalizados. link:http://www.jcp.org/en/jsr/detail?id=269[+JSR 269+] implementado em JDK 6 fornece uma API original para processadores de anotação escrita. É possível escrever seu próprio processador de anotação personalizado ou utilizar as soluções de terceiros.

Para informações iniciais sobre anotações no JDK 6, consulte os recursos a seguir:

* Documentação Java SE - link:http://download.oracle.com/javase/6/docs/technotes/guides/language/annotations.html[+Anotações+]
* Tutorial Java SE - link:http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html[+Anotações+]

Na prática, anotações são mais utilizadas combinadas com Java Persistence API (JPA), que é parte da especificação Java EE e algumas outras tecnologias, como o JAXB (Java Architecture para vinculação de XML). Utilizando JPA, as classes Java podem ser anotadas como entidades que mais tarde podem ser persistidas em um dispositivo de armazenamento. Para desenvolver aplicações com base em JPA, é conveniente utilizar frameworks, como por exemplo o EclipseLink, que é agrupado com o IDE. Como ponto de partida para obter mais informações sobre como escrever aplicações baseadas em JPA no NetBeans IDE, consulte link:../javaee/javaee-gettingstarted.html[+Conceitos Básicos sobre Aplicações Java EE+].


== Mapa das Opções do javac e comandos IDE para Processamento de Anotação

Como mencionado acima, no Java SE 6 javac, o processamento de anotação foi incorporado como funcionalidade integral do compilador Java. O compilador pesquisa automaticamente processadores de anotação por default, como caminho de classe de usuário (a menos que o processamento de anotação estiver desativado explicitamente). Além disso, o caminho de pesquisa ou o caminho para processadores de anotação específicos podem ser especificados utilizando opções javac. Na tabela abaixo, é possível visualizar um mapa das opções javac relacionado ao processamento de anotação e os comandos correspondentes no IDE. Para mais informações sobre opções javac no JDK 6, consulte link:http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html[+javac - Compilador da linguagem de programação Java+].

*Observação.* No IDE, as opções de processamento da anotação para todas as aplicações Java, com exceção das aplicações da plataforma Netbeans são especificados na janela Propriedades do Projeto. Para abrir a janela Propriedades do projeto, clique com o botão direito do mouse em seu projeto e selecione Propriedades.

|===
|Opções Java 6 javac |Comando IDE |Descrição 

| ``-processador ``  |

Propriedades do Projeto > Construção > Compilação > campo Processadores de Anotação.

Especifique um nome completo qualificado do processador de anotação no campo Processador da Anotação.

 |Especifique explicitamente o processador de anotação para executar. Esta opção elimina a necessidade de criar arquivos de configuração do serviço do provedor (META-INF/services/javax.annotation.processing.Processor) 

| ``-proc:none``  |

Propriedades do Projeto > Construção > Compilação > caixa de seleção Ativar Processamento de Anotação

Quando a caixa de seleção estiver desativada, o projeto será compilado sem qualquer processamento de anotação.

 |A compilação continua sem qualquer processamento de anotação. O mecanismo de descoberta do processador de anotação não é usado durante a compilação. 

| ``-processorpath``  |

Propriedades do Projeto > Bibliotecas > guia Processador

Especifique o caminho para um projeto IDE, biblioteca ou um arquivo Jar que contém um processador de anotação. Utilize esta opção se um processador de anotação e anotações são encapsulados em arquivos JAR separados.

 |Especifica onde localizar processadores de anotação; se essa opção não for oferecida, o caminho da classe é localizado por processadores (veja abaixo). 

| ``-classpath``  |

Propriedades do projeto > Bibliotecas > guia Compilador

Especifique o caminho para um projeto IDE, biblioteca ou um arquivo Jar que contém um processador de anotação e declarações de anotação. Utilize esta opção se um processador de anotação e anotações forem encapsulados em um único arquivo JAR.

 |Especifica onde localizar arquivos de classe de usuário e (opcionalmente) processadores de anotação e arquivos código-fonte. Esse caminho é localizado para processadores de anotação se a opção -processorpath não for especificada. 

| ``-A_key[=value]_``  |

Propriedades do Projeto > Construção > Compilação > campo Opções do processador

Adicione opções que devem ser passadas para o processador de anotação associado ao projeto. Esse valor é opcional.

 |(Opcional) Opções para passar para processadores de anotação. 
|===

 


== Próximas Etapas

Leia as partes a seguir do tutorial para aprender como utilizar anotações no IDE.

* link:annotations-lombok.html[+Parte I: Utilizando Projeto Lombok para Anotações Personalizadas+]
* link:annotations-custom.html[+Parte II: Utilizando o Próprio Processador de Anotação Personalizado no IDE+]

link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20the%20Annotation%20Processors%20Support%20in%20the%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+]
