| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <title>Guia de início rápido da plataforma NetBeans utilizando o Maven</title> |
| <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"/> |
| <meta name="AUDIENCE" content="NBUSER"/> |
| <meta name="TYPE" content="ARTICLE"/> |
| <meta name="EXPIRES" content="N"/> |
| <meta name="indexed" content="y"/> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta name="description" |
| content="A short demonstration of how to create a simple |
| NetBeans Platform application and module and use Maven for the build framework."/> |
| <!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. --> |
| <!-- Use is subject to license terms.--> |
| </head> |
| <body> |
| |
| <h1>Guia de início rápido da plataforma NetBeans utilizando o Maven</h1> |
| |
| <p>Bem-vindo à <a href="https://platform.netbeans.org/"><b>Plataforma NetBeans</b></a>!</p> |
| |
| <p>Este documento é uma demonstração rápida de como criar um simples aplicativo e módulo da plataforma NetBeans e utilizar o Maven para a estrutura da construção. Neste documento serão utilizados os arquétipos Maven para criar um aplicativo e módulo da plataforma NetBeans. Você utilizará o kit de ferramentas da interface de usuário Swing e o Construtor GUI "Matisse" para criar um componente de janela no módulo. O aspecto modular da plataforma NetBeans lhe possibilita desenvolver e expandir a funcionalidade do seu aplicativo, adicionando simplesmente novos módulos. |
| </p> |
| |
| <p>Este documento tem base no <a href="nbm-quick-start_pt_BR.html">Guia de início rápido da Plataforma NetBeans para Plataformas NetBeans</a> com base no Ant. e ilustra algumas das diferenças entre o uso do Ant e do Maven para desenvolver os aplicativos da plataforma NetBeans. Após ter entendido como o Maven é diferente do Ant, será possível prosseguir com facilidade através de outros tutoriais na <a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha de aprendizado da Plataforma NetBeans</a>.</p> |
| |
| <p class="tips">Caso esteja utilizando o NetBeans IDE 6.8, consulte o <a href="68/nbm-maven-quickstart.html">Guia de início rápido para Plataforma NetBeans 6.8 utilizando o Maven</a>.</p> |
| |
| <p class="tips">Caso não tenha experiência com a plataforma NetBeans, recomenda com ênfase assistir à série de screencasts <a href="https://platform.netbeans.org/tutorials/nbm-10-top-apis.html">As 10 principais APIs do NetBeans</a>.</p> |
| |
| <p><b>Conteúdo</b></p> |
| <p><img src="../images/articles/74/netbeans_stamp_74_73_72.png" class="stamp" width="114" height="114" alt="O conteúdo desta página se aplica ao NetBeans IDE 6.5, 6.7, 6.8" title="O conteúdo desta página se aplica ao NetBeans IDE 6.5, 6.7, 6.8" /></p> |
| |
| <ul class="toc"> |
| <li><a href="#config">Configurando Maven</a></li> |
| <li><a href="#01">Criando projeto de aplicativo da plataforma NetBeans</a> |
| <ul> |
| <li><a href="#01a">Modificando elementos de marca</a></li> |
| </ul> |
| </li> |
| <li><a href="#02">Criando módulo Maven WordEngine</a> |
| <ul> |
| <li><a href="#02b">Tornando módulo uma dependência</a></li> |
| <li><a href="#02c">Adicionando um componente de janela</a></li> |
| </ul> |
| </li> |
| <li><a href="#04">Criando módulo TextFilter</a> |
| <ul> |
| <li><a href="#04b">Tornando módulo uma dependência</a></li> |
| <li><a href="#04c">Adionando uma interface</a></li> |
| <li><a href="#04d">Tornando público o módulo</a></li> |
| </ul> |
| </li> |
| <li><a href="#05">Criando módulo MyFilter</a> |
| <ul> |
| <li><a href="#05b">Adicionando TextFilter como uma dependência</a></li> |
| <li><a href="#05c">Adicionando uma classe Java</a></li> |
| <li><a href="#05d">Chamando o método a partir do módulo Maven WordEngine</a></li> |
| </ul> |
| </li> |
| <li><a href="#06">Adicionando campos Listener e Conteúdo</a></li> |
| <li><a href="#07">Criando módulo Histórico</a> |
| <ul> |
| <li><a href="#07b">Adicionando um componente de janela</a></li> |
| </ul> |
| </li> |
| <li><a href="#08">Executando aplicativo</a></li> |
| </ul> |
| |
| <p><b>Para seguir este tutorial, são necessários os softwares e recursos listados na tabela a seguir.</b></p> |
| |
| <table> |
| <tbody> |
| <tr> |
| <th class="tblheader" scope="col">Software ou recurso</th> |
| <th class="tblheader" scope="col">Versão necessária</th> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://download.netbeans.org/">NetBeans IDE</a></td> |
| <td class="tbltd1">versão 6.9</td> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">Java Developer Kit (JDK)</a></td> |
| <td class="tbltd1">Versão 6</td> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://maven.apache.org/">Maven</a></td> |
| <td class="tbltd1">versão 2.0.9 ou superior</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <p><strong class="notes">Observação:</strong> não é necessário baixar uma versão avulsa da plataforma NetBeans para desenvolver os aplicativos para a plataforma NetBeans. Normalmente, você desenvolve os aplicativos e módulos no NetBeans IDE e, a seguir, inclui somente os módulos necessários para executar a plataforma NetBeans e seu aplicativo.</p> |
| |
| <p>Antes de começar este tutorial, talvez você queira se familiarizar com a documentação a seguir.</p> |
| <ul> |
| <li><a href="http://wiki.netbeans.org/MavenBestPractices">Melhores práticas para o Apache Maven no NetBeans 6.x</a></li> |
| <li><a href="http://www.sonatype.com/books/maven-book/reference/introduction.html">Capítulo 1. Introdução ao Apache Maven</a> (do <a href="http://www.sonatype.com/books/maven-book/reference/public-book.html">Maven: o guia definitivo</a>)</li> |
| <li><a href="https://netbeans.org/kb/docs/java/gui-functionality_pt_BR.html">Introdução à construção de GUIs</a></li> |
| </ul> |
| |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++++ Configuring Maven +++++++++++++++++++++++++++++++++ --> |
| |
| <h2><a name="config"></a>Configurando Maven</h2> |
| <p>Se este for seu primeiro Projeto Maven, talvez você queira verificar as definições de configurações do Maven na janela Opções. Para completar este tutorial é preciso ter o Maven instalado no sistema local. É possível fazer o download do instalador no <a href="http://maven.apache.org/">site do Maven</a>.</p> |
| |
| <ol> |
| <li>Selecione a categoria Diversos na janela Opções e clique na aba Maven.</li> |
| <li>Especifique a localização da instalação local do Maven (requer 2.0.9 ou mais recente).</li> |
| <li>Verifique se a localização do repositório local do Maven está correta.</li> |
| <li>Clique em OK.</li> |
| </ol> |
| <p>Na maioria dos casos, se a configuração do Maven for normal, as informações na janela Opções já devem estar corretas.</p> |
| |
| <p class="notes"><strong>Observação.</strong> O suporte do Maven é ativado como parte do conjunto dos recursos do Java SE. Caso a aba Maven não esteja disponível na janela Opções, confirme que o Java SE está ativado criando um aplicativo Java.</p> |
| |
| <p>O IDE usa o Maven SCM para checkout dos artefatos Maven. Talvez você queira verificar se os clientes necessários para o checkout das fontes estão instalados na máquina local e configurados corretamente.</p> |
| <p class="tips">Para mais detalhes sobre o Maven SCM, consulte a <a href="http://maven.apache.org/scm/index.html">página Maven SCM</a>.</p> |
| |
| <div class="indent"> |
| <h3><a name="config1"></a>Visualizando repositórios Maven</h3> |
| <p>Os artefatos que são utilizados pelo Maven para construir todos os seus projetos são armazenados no repositório local Maven. Quando um artefato é declarado como uma dependência do projeto, o artefato é baixado para o repositório local a partir de um dos repositórios remotos registrados.</p> |
| |
| <p>O repositório NetBeans e vários outros repositórios conhecidos Maven indexados são registrados e listados, por padrão, na janela Navegador do repositório. O repositório do NetBeans contém a grande maioria dos artefatos públicos necessários para a construção do projeto. É possível utilizar o navegador do repositório Maven para visualizar o conteúdo dos repositórios locais e remotos. É possível expandir o nó Repositório local para visualizar os artefatos que estão presentes localmente. Os artefatos listados sob os nós Repositório do NetBeans podem ser adicionados às dependências do projeto, mas nem todos eles estão presentes localmente. Eles são adicionados ao repositório local somente quando são declarados como dependências do projeto.</p> |
| |
| <p>Para abrir o navegador do repositório Maven:</p> |
| <ul> |
| <li>Escolha Janela > Outro > Navegador do repositório Maven do menu principal.<br/> |
| <img src="../images/tutorials/maven-quickstart68/maven-nbm-netbeans-repo.png" alt="Captura de tela do Navegador do repositório Maven" title="Captura de tela do Navegador do repositório Maven" class="margin-around b-all" /> |
| </li> |
| </ul> |
| |
| |
| <p>Quando o cursor estiver sobre um artefato, o IDE exibirá uma dica de ferramenta com as coordenadas do artefato. É possível visualizar detalhes adicionais sobre um artefato ao clicar duas vezes no arquivo JAR do artefato no navegador.</p> |
| |
| <p class="tips">É possível pesquisar por um artefato ao clicar no botão Localizar da barra de ferramentas do navegador do repositório Maven ou ao utilizar o campo de texto Pesquisa rápida na barra de ferramentas principal.</p> |
| <p class="tips">Para saber mais sobre como gerenciar as dependências de classpath Maven e sobre como trabalhar com repositórios Maven no IDE, consulte a seção <a href="http://wiki.netbeans.org/MavenBestPractices#Dependency_management">Gerenciamento de dependência</a> em <a href="http://wiki.netbeans.org/MavenBestPractices">Melhores práticas para o Apache Maven no NetBeans 6.x</a>. |
| </p> |
| <p class="tips">Para assistir a uma demonstração sobre como utilizar o Visualizador de artefato, consulte o screencast <a href="https://netbeans.org/kb/docs/java/maven-dependencies-screencast.html"> Trabalhando com dependências Maven</a>.</p> |
| |
| </div> |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++++ Creating the Platform Application +++++++++++++++++ --> |
| |
| <h2><a name="01"></a>Criando projeto do aplicativo da plataforma NetBeans</h2> |
| |
| <p>Nesta seção será utilizado o assistente Novo projeto para criar um aplicativo NetBeans a partir de um arquétipo Maven. O assistente criará os projetos do módulo Maven necessários para desenvolver um aplicativo na plataforma NetBeans. O assistente fornece também a opção de criar um módulo NetBeans no projeto do aplicativo, mas neste tutorial será criado cada módulo individualmente.</p> |
| |
| <div class="indent"> |
| <h3>Criando projeto</h3> |
| |
| <p>Execute as etapas a seguir, para criar o aplicativo da plataforma NetBeans utilizando o assistente Novo projeto.</p> |
| <ol> |
| <li>Selecione Arquivo > Novo projeto (Ctrl-Shift-N) para abrir o assistente Novo projeto.</li> |
| <li>Selecione o aplicativo Netbeans Maven na categoria Maven. Clique em Próximo.</li> |
| <li>Digite <strong>MavenPlatformWordApp</strong> como o nome do projeto e defina a localização do projeto. Clique em Terminar. <br/> |
| <img src="../images/tutorials/maven-quickstart/maven-newproject.png" alt="Captura de tela do assistente Novo projeto" title="Captura de tela do assistente Novo projeto" class="margin-around b-all" /> |
| </li> |
| </ol> |
| |
| <p class="notes"><strong>Observação.</strong> Caso este seja o seu primeiro aplicativo da plataforma NetBeans utilizando o Maven, pode ser que leve mais tempo para criar os projetos, uma vez que o IDE precisa baixar todos os artefatos necessários a partir do repositório NetBeans.</p> |
| |
| <p>Ao clicar em Terminar, por padrão, o IDE cria os seguintes tipos do projeto Maven.</p> |
| <ul> |
| <li><strong>Aplicativo da plataforma NetBeans.</strong> Este projeto é um projeto recipiente para o aplicativo da plataforma e lista os módulos a serem incluídos e a localização dos repositórios do projeto. Este projeto não contém nenhuma origem. O IDE gera os módulos contendo as fontes e recursos nos subdiretórios deste projeto.</li> |
| <li><strong>Aplicativo com base na plataforma NetBeans.</strong> Este projeto especifica os artefatos (fontes) necessários para a compilação do aplicativo. As dependências exigidas (artefatos IDE, artefatos de módulos) são especificadas no arquivo <tt>pom.xml</tt> do projeto. Se expandir o nó Bibliotecas, poderá visualizar as bibliotecas necessárias para o aplicativo da plataforma NetBeans.</li> |
| <li><strong>Recursos de marca do aplicativo da plataforma.</strong> Este projeto contém os recursos utilizados para a marca do aplicativo. </li> |
| </ul> |
| |
| <p>Para todos os projetos Maven, o arquivo <tt>pom.xml</tt> (POM) está localizado sob o nó Arquivos do projeto na janela Projetos. Se observar o POM para o projeto do aplicativo da plataforma NetBeans, poderá notar que os outros dois módulos criados pelo assistente estão listados como módulos no aplicativo.</p> |
| <pre class="examplecode"> |
| <modules> |
| <module>branding</module> |
| <module>application</module> |
| </modules> |
| </pre> |
| |
| |
| <h3><a name="01a"></a>Modificando elementos da marca</h3> |
| <p>O módulo da marca especifica os recursos da marca utilizados ao construir o aplicativo da plataforma. A caixa de diálogo da marca lhe permite modificar facilmente as propriedades do aplicativo para alterar o nome, a tela de splash e os valores dos elementos de texto. </p> |
| |
| <p>Ao criar o aplicativo da plataforma NetBeans a partir do arquétipo, o nome padrão para o aplicativo é o artifactId do aplicativo. Neste exercício será utilizado o assistente de marca para modificar o nome do aplicativo e substituir a imagem padrão para a tela splash.</p> |
| <p class="notes"><strong>Observação.</strong> O IDE precisa construir o módulo de marca antes que você possa modificar os recursos da marca.</p> |
| <ol> |
| <li>Clique com o botão direito no módulo <strong>Recursos de marca do aplicativo da plataforma</strong> e selecione Marca.</li> |
| <li>Na aba Básico, altere o título do aplicativo para <strong>Aplicativo My Maven Platform Word</strong>.<br/> |
| <img src="../images/tutorials/maven-quickstart/maven-branding1.png" alt="Captura de tela do assistente Novo projeto" title="Captura de tela do assistente Novo projeto" class="margin-around b-all" /> |
| </li> |
| <li>Clique na aba Tela splash e clique no botão Navegador ao lado da imagem da tela splash para localizar uma imagem diferente. Clique em OK.</li> |
| <!--<li>Click the Resource Bundles tab and expand the <strong>org/netbeans/core/startup/Bundle.properties</strong> node.</li> |
| <li>Double-click <strong>CTL_About_Title</strong> and type a new title for the About dialog window. Click OK.<br/> |
| <img src="../images/tutorials/maven-quickstart/maven-branding2.png" alt="Screenshot of New Project wizard" title="Screenshot of New Project wizard" class="margin-around b-all" /> |
| </li>--> |
| </ol> |
| |
| |
| <p class="tips">É possível copiar a imagem abaixo para o seu sistema local e especificar a imagem como uma tela splash na caixa de diálogo Marca.</p> |
| <img src="../images/tutorials/maven-quickstart68/splash.gif" alt="Exemplo da imagem splash padrão" title="Exemplo da imagem splash padrão" class="margin-around b-all" /> |
| |
| </div> |
| |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++++ Creating the MavenWordEngine Module +++++++++++++++ --> |
| |
| |
| <h2><a name="02"></a>Criando módulo Maven WordEngine</h2> |
| |
| <p>Nesta seção será criado um novo módulo chamado Maven WordEngine. Você modificará então o módulo para adicionar um componente de janela, um botão e uma área de texto.</p> |
| |
| <div class="indent"> |
| <h3><a name="02a"></a>Criando módulo</h3> |
| <p>Neste exercício será criado um novo projeto de módulo no mesmo diretório que contém o módulo da marca e o módulo do aplicativo.</p> |
| <ol> |
| <li>Selecione no menu principal Arquivo > Novo projeto.</li> |
| <li>Selecione Módulo NetBeans Maven na categoria Maven. Clique em Próximo.</li> |
| <li>Digite <strong>Maven WordEngine</strong> como o nome do projeto.</li> |
| <li>Clique em Navegador e localize o diretório MavenPlatformWordApp como a localização do projeto. Clique em Terminar.</li> |
| </ol> |
| |
| <img src="../images/tutorials/maven-quickstart/maven-wizard-project-location.png" alt="Captura de tela do assistente Novo projeto" title="Captura de tela do assistente Novo projeto" class="margin-around b-all" /> |
| |
| |
| <p>Se observar o POM para o módulo MavenWordEngine notará que a <tt>artifactId</tt> do projeto é <strong>MavenWordEngine</strong>.</p> |
| |
| <pre class="examplecode"> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <groupId>com.mycompany</groupId> |
| <artifactId>MavenPlatformWordApp</artifactId> |
| <version>1.0-SNAPSHOT</version> |
| </parent> |
| <groupId>com.mycompany</groupId> |
| <artifactId><strong> MavenWordEngine </strong></artifactId> |
| <packaging>nbm</packaging> |
| <version>1.0-SNAPSHOT</version> |
| <name>MavenWordEngine NetBeans Module</name> |
| </pre> |
| |
| <p>Para construir o módulo NetBeans é necessário utilizar o <tt>nbm-maven-plugin</tt>. Se observar o POM para o módulo, poderá notar que o IDE especificou automaticamente o <tt>nbm</tt> para o <tt>pacote</tt> e que o <strong>nbm-maven-plugin</strong> foi especificado como um plugin de construção.</p> |
| |
| <pre class="examplecode"> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId><strong>nbm-maven-plugin</strong></artifactId> |
| <version>3.2-SNAPSHOT</version> |
| <extensions>true</extensions> |
| </plugin> |
| </pre> |
| |
| <p>Se observar o POM para o aplicativo da plataforma NetBeans, você notará que o <strong>MavenWordEngine</strong> foi adicionado à lista de módulos no aplicativo.</p> |
| |
| <pre class="examplecode"> |
| <modules> |
| <module>branding</module> |
| <module>application</module> |
| <module><strong>MavenWordEngine</strong></module> |
| </modules> |
| </pre> |
| |
| <h3><a name="02b"></a>Tornando módulo uma dependência do MavenPlatformWordApp</h3> |
| <p>Neste exercício será declarado o módulo MavenWordEngine como uma dependência do aplicativo com base na plataforma NetBeans adicionando a dependência no POM. O POM para o aplicativo declara as dependências a seguir.</p> |
| <pre class="examplecode"><dependencies> |
| <dependency> |
| <groupId>org.netbeans.cluster</groupId> |
| <artifactId>platform</artifactId> |
| <version>${netbeans.version}</version> |
| <type>pom</type> |
| </dependency> |
| <dependency> |
| <groupId>com.mycompany</groupId> |
| <artifactId>branding</artifactId> |
| <version>1.0-SNAPSHOT</version> |
| </dependency> |
| </dependencies></pre> |
| |
| <p>Se expandir o nó Bibliotecas para o aplicativo com base na plataforma NetBeans, notará que há uma dependência no módulo da marca e em outras bibliotecas que são dependências do cluster necessário para construir o aplicativo.</p> |
| <img src="../images/tutorials/maven-quickstart/maven-projects-libraries.png" alt="Captura de tela do nó Bibliotecas" title="Captura de tela da caixa de diálogo Adicionar dependência" class="margin-around b-all" /> |
| <p class="tips">É possível expandir a lista de dependências não-classpath para visualizar a lista completa de dependências.</p> |
| |
| <p>Para adicionar a dependência ao POM, é possível editar o POM diretamente no editor ou abrir a caixa de diálogo Adicionar dependência na janela Projetos.</p> |
| |
| <ol> |
| <li>Expanda o <strong>Aplicativo com base na plataforma NetBeans-MavenPlatformAPP</strong> na janela Projetos.</li> |
| <li>Clique com o botão direito no nó Bibliotecas e selecione Adicionar dependência.</li> |
| <li>Clique na aba Abrir projetos e selecione <strong>MavenWordEngine</strong>. Clique em OK.</li> |
| </ol> |
| <img src="../images/tutorials/maven-quickstart/maven-add-dependency1.png" alt="Captura de tela da caixa de diálogo Adicionar dependência" title="Captura de tela da caixa de diálogo Adicionar dependência" class="margin-around b-all" /> |
| |
| <p class="notes"><strong>Observação.</strong> O novo projeto aparecerá na caixa de diálogo após o IDE finalizar a análise e atualização dos índices.</p> |
| |
| <p>Se expandir o nó Bibliotecas do MavenPlatformWordApp na janela Projetos, você notará que o MavenWordEngine está agora listado com uma dependência.</p> |
| |
| <h3><a name="02c"></a>Adicionando componente de janela a um módulo</h3> |
| |
| <p>Neste exercício será utilizado um assistente para adicionar o componente de janela ao módulo MavenWordEngine.</p> |
| <ol> |
| <li>Clique com o botão direito do mouse no <strong>Módulo NetBeans MavenWordEngine</strong> na janela Projetos e selecione Novo > Outro para abrir o assistente Novo arquivo.</li> |
| <li>Selecione Janela na categoria Desenvolvimento do módulo. Clique em Próximo.</li> |
| <li>Selecione <strong>saída</strong> na lista suspensa Posição da janela. Clique em Próximo.<br/> |
| <img src="../images/tutorials/maven-quickstart/maven-new-window.png" alt="Captura de tela da página Componente de janela no assistente Novo arquivo" title="Captura de tela da página Componente de janela no assistente Novo arquivo" class="margin-around b-all" /> |
| </li> |
| <li>Digite <strong>Texto</strong> no campo Prefixo do nome da classe. Clique em Terminar. |
| <p>O assistente exibe uma lista de arquivos que serão criados e dos arquivos que serão modificados. </p></li> |
| </ol> |
| |
| |
| |
| <p>Ao clicar em Terminar, na janela Projetos, poderá notar que o IDE gerou a classe <tt>TextTopComponent.java</tt> no <tt>com.mycompany.mavenwordengine</tt> sob os pacotes Origem. O IDE também gerou arquivos de recursos adicionais no <tt>com.mycompany.mavenwordengine</tt> sob Outras fontes. Neste exercício será editado somente o arquivo <tt>TextTopComponent.java</tt>.</p> |
| |
| <p>É possível visualizar a estrutura do projeto na janela Arquivos. Para compilar um projeto Maven, somente arquivos de origem podem ser localizados sob os pacotes Origem (diretório <tt>src/main/java</tt> na janela Arquivos). Outros recursos (ex. arquivos XML) precisam ser localizados sob Outras fontes (diretório <tt>src/main/resources</tt> na janela Arquivos). </p> |
| |
| <h3><a name="02d"></a>Modificando componente de janela</h3> |
| |
| <p>Neste exercício serão adicionados uma área de texto e um botão ao componente de janela. Você modificará então o método invocado pelo botão para mudar as letras na área de texto para letras maiúsculas.</p> |
| <ol> |
| <li>Clique na aba Desenho do <tt>TextTopComponent.java</tt> no editor.</li> |
| <li>Arraste e solte um botão e uma área de texto da paleta na janela.</li> |
| <li>Clique com o botão direito na área de texto e selecione Alterar nome variável e, a seguir, digite <strong>texto</strong> como o nome. Você utilizará o nome ao acessar o componente do seu código.</li> |
| <li>Defina o texto do botão como "<strong>Filtro!</strong>".<br/> |
| <img src="../images/tutorials/maven-quickstart68/maven-nbm-textopcomponent.png" alt="Captura de tela da página Componente de janela no assistente Novo arquivo" title="Captura de tela da página Componente de janela no assistente Novo arquivo" class="margin-around b-all" /> |
| </li> |
| <li>Clique duas vezes no elemento do botão Filtro! na visualização Desenho para abrir o método manipuladores de eventos para o botão no editor do código de origem. O método é criado automaticamente ao clicar duas vezes no elemento botão.</li> |
| <li>Modifique o corpo do método e adicione o código a seguir. Salve as alterações. |
| <pre class="examplecode"> |
| private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { |
| <strong>tring s = text.getText(); |
| s = s.toUpperCase(); |
| text.setText(s);</strong>}</pre> |
| <p class="tips">É possível utilizar a conclusão do código no editor para ajudá-lo a digitar o código. </p> |
| </li> |
| </ol> |
| |
| <p>Se desejar testar se seus aplicativos estão funcionando corretamente, pode clicar com o botão direito do mouse no nó Projeto do <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecionar Construir com dependências.</p> |
| |
| <p>A ação padrão mapeada para Construir com dependências é construir o projeto utilizando o plugin Reator. Ao construir um projeto utilizando o plugin Reator, as dependências dos subprojetos são construídas antes que o projeto recipiente seja construído. A janela Saída exibe a ordem de construção.</p> |
| |
| <img src="../images/tutorials/maven-quickstart/maven-buildwithdependencies1.png" alt="Captura de tela da Ordem de construção do Reator na janela Saída" title="Captura de tela da Ordem de construção do Reator na janela Saída" class="margin-around b-all" /> |
| |
| <p>Os resultados da construção são mostrados também na janela Saída.</p> |
| |
| <img src="../images/tutorials/maven-quickstart/maven-buildwithdependencies2.png" alt="Captura de tela da Construção bem sucedida do Reator na janela Saída" title="Captura de tela da Construção bem sucedida do Reator na janela Saída" class="margin-around b-all" /> |
| |
| <p>Se observar a janela Projetos, notará que os projetos não possuem mais distintivos porque os artefatos das dependências exigidas agora estão disponíveis no repositório local sob o nó <tt>com.mycompany</tt>.</p> |
| |
| <img src="../images/tutorials/maven-quickstart/maven-localrepo.png" alt="Captura de tela do Repositório local" title="Captura de tela do Repositório local" class="margin-around b-all" /> |
| |
| <p>Para executar o projeto, clique com o botão direito no nó projeto do <strong>aplicativo com base na plataforma NetBeans MavenPlatformWordApp</strong> e selecione Executar. Após a ativação do aplicativo, é possível testá-lo executando as etapas a seguir.</p> |
| <ol> |
| <li>Selecione Janela > Texto no menu principal do aplicativo da plataforma para abrir a janela Texto.</li> |
| <li>Digite algumas letras minúsculas na área de texto e clique em Filtro! </li> |
| <li>Saia do Maven Platform Word App.</li> |
| </ol> |
| <p>Ao clicar em Filtro!, as letras que digitou serão alteradas para maiúsculas e exibidas na área de texto. </p> |
| |
| </div> |
| |
| |
| |
| |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++ Creating the TextFilter Module ++++++++++++++++++++++ --> |
| |
| |
| <h2><a name="04"></a>Criando módulo TextFilter</h2> |
| |
| <p>Neste exercício será criado um módulo chamado <b>TextFilter</b> e adicionará o módulo como uma dependência ao aplicativo. O módulo TextFilter fornecerá um serviço e conterá somente uma interface. Então será possível acessar o serviço a partir de seus outros módulos utilizando o objeto Pesquisar.</p> |
| |
| <div class="indent"> |
| <h3><a name="04a"></a>Criando módulo</h3> |
| <p>Neste exercício serão executados as etapas a seguir para criar o módulo TextFilter.</p> |
| |
| <ol> |
| <li> Selecione Arquivo > Novo projeto (Ctrl-Shift-N).</li> |
| <li> Selecione o arquétipo do módulo NetBeans Maven na categoria Maven. Clique em Próximo.</li> |
| <li> Digite <b>TextFilter</b> como o nome do projeto.</li> |
| <li> Clique no Navegador para definir a localização do projeto e localizar o diretório MavenPlatformWordApp. Clique em Terminar.</li> |
| </ol> |
| |
| <p>Ao clicar em Terminar, o IDE cria o módulo e abre o projeto do módulo <b>Módulo NetBeans TextFilter </b> na janela Projetos.</p> |
| <p>O IDE modifica o arquivo <tt>pom.xml</tt> do projeto POM aplicativo da plataforma NetBeans - MavenPlatformWordApp para adicionar o novo módulo à lista de módulos a ser incluída no projeto.</p> |
| |
| <pre class="examplecode"><modules> |
| <module>branding</module> |
| <module>application</module> |
| <module>MavenWordEngine</module> |
| <module>TextFilter</module> |
| </modules></pre> |
| |
| <p>Após criar o módulo será necessário adicionar o mesmo como uma dependência do aplicativo.</p> |
| |
| <h3><a name="04b"></a>Adicionando Módulo TextFilter como uma dependência do MavenPlatformWordApp</h3> |
| |
| <p>Neste exercício será adicionado o módulo TextFilter como uma dependência do aplicativo com base na plataforma NetBeans MavenPlatformWordApp.</p> |
| <ol> |
| <li>Clique com o botão direito do mouse no nó Bibliotecas do projeto<strong>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</strong> e selecione Adicionar dependência.</li> |
| <li>Clique na aba Abrir projetos na caixa de diálogo Adicionar dependência.</li> |
| <li>Selecione o módulo <strong>Módulo TextFilterNetBeans</strong>. Clique em OK.</li> |
| </ol> |
| |
| <p>Ao clicar em OK, o IDE adiciona o módulo como uma dependência do projeto. Se expandir o nó Biblioteca, poderá notar que o módulo foi adicionado à lista de dependências. No POM para o <strong>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</strong>, poderá notar que o IDE adicionou as linhas seguintes dentro do elemento <tt>dependências</tt>.</p> |
| |
| <pre class="examplecode"><dependency> |
| <groupId>${project.groupId}</groupId> |
| <artifactId>TextFilter</artifactId> |
| <version>${project.version}</version> |
| </dependency></pre> |
| |
| |
| |
| <h3><a name="04c"></a>Adicionando uma interface ao módulo TextFilter</h3> |
| <p>Neste exercício será adicionado uma interface simples ao módulo TextFilter.</p> |
| |
| <ol> |
| <li> Clique com o botão direito do mouse no <strong>Módulo NetBeans TextFilter</strong> e selecione Nova > Interface Java.</li> |
| <li> Digite <strong>TextFilter</strong> como o nome da classe.</li> |
| <li> Selecione <b>com.mycompany.textfilter</b> na lista suspensa Pacote. Clique em Terminar.</li> |
| <li> Modifique a classe para adicionar o código a seguir. Salve as alterações.</li> |
| </ol> |
| <pre class="examplecode">package com.mycompany.textfilter; |
| |
| public interface TextFilter { |
| <strong>public String process(String s);</strong>}</pre> |
| |
| |
| <h3><a name="04d"></a>Tornando público o módulo TextFilter</h3> |
| <p>Neste exercício você tornará público os conteúdos do pacote <tt>com.mycompany.textfilter</tt>, de forma que outros módulos possam acessar os métodos. Para declarar um pacote como público, modifique o elemento da <tt>configuração</tt> do <tt>nbm-maven-plugin</tt> no POM para especificar os pacotes exportados como público pelo plugin. É possível fazer as alterações ao POM no editor ou selecionar os pacotes a se tornarem públicos na caixa de diálogo Propriedades. |
| </p> |
| |
| |
| <ol> |
| <li> Clique com o botão direito no <strong>Módulo NetBeans TextFilter</strong> e selecione Propriedades.</li> |
| <li> Selecione a categoria Pacotes públicos na caixa de diálogo Propriedades do projeto.</li> |
| <li> Selecione o pacote <strong>com.mycompany.textfilter</strong>. Clique em OK.</li> |
| </ol> |
| <img src="../images/tutorials/maven-quickstart/maven-public-packages.png" alt="Captura de tela da caixa de diálogo Propriedades" title="Captura de tela da caixa de diálogo Propriedades" class="margin-around b-all" /> |
| |
| |
| <p>Ao clicar em OK, o IDE modifica o projeto POM para modificar o elemento da <tt>configuração</tt> do artefato <tt>nbm-maven-plugin</tt> para adicionar as seguintes entradas.</p> |
| |
| <pre><publicPackages> |
| <publicPackage>com.mycompany.textfilter</publicPackage> |
| </publicPackages></pre> |
| |
| <p>Agora a entrada do POM contém as seguintes entradas.</p> |
| <pre><plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>nbm-maven-plugin</artifactId> |
| <version>3.2</version> |
| <extensions>true</extensions> |
| <configuration> |
| <publicPackages> |
| <publicPackage>com.mycompany.textfilter</publicPackage> |
| </publicPackages> |
| |
| </configuration> |
| </plugin></pre> |
| |
| |
| <p class="tips">Para mais informações, consulte <a href="http://mojo.codehaus.org/nbm-maven-plugin/manifest-mojo.html#publicPackages" class="external text" title="http://mojo.codehaus.org/nbm-maven-plugin/manifest-mojo.html#publicPackages" rel="nofollow">manifesto nbm-maven-plugin</a></p> |
| |
| </div> |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++ Creating the MyFilter Module ++++++++++++++++++++++++ --> |
| |
| |
| <h2><a name="05"></a>Criando módulo MyFilter</h2> |
| <p>Neste exercício será criado o módulo <b>MyFilter</b> e adicionado como uma dependência do TextFilter. É possível então chamar os métodos no MyFilter pesquisando o serviço TextFilter.</p> |
| <div class="indent"> |
| |
| <h3><a name="05a"></a>Criando módulo</h3> |
| <p>Neste exercício será criado o módulo chamado <strong>MyFilter</strong>. Para criar o módulo, você seguirá os mesmas etapas que executou ao criar o módulo TextFilter.</p> |
| |
| <ol> |
| <li> Selecione Arquivo > Novo projeto (Ctrl-Shift-N).</li> |
| <li> Selecione Módulo NetBeans Maven na categoria Maven. Clique em Próximo.</li> |
| <li> Digite <b>MyFilter</b> como o nome do projeto.</li> |
| <li> Clique no Navegador para definir a localização do projeto e localizar o diretório <strong>MavenPlatformWordApp</strong>. Clique em Terminar.</li> |
| <li> Adicione o módulo MyFilter como uma dependência do projeto do <b>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</b>.</li> |
| </ol> |
| |
| |
| <h3><a name="05b"></a>Adicionando módulo TextFilter como uma dependência</h3> |
| <p>Neste exercício será adicionado o módulo TextFilter como uma dependência do módulo MyFilter.</p> |
| |
| <ol> |
| <li>Clique com o botão direito do mouse no nó Bibliotecas do projeto <b>MyFilter</b> e selecione Adicionar dependência.</li> |
| <li>Clique na aba Abrir projetos na caixa de diálogo Adicionar dependência.</li> |
| <li>Selecione o módulo <strong>TextFilter</strong>. Clique em OK.</li> |
| </ol> |
| |
| <h3><a name="05c"></a>Modificando módulo MyFilter</h3> |
| <p>Neste exercício será adicionada uma classe Java com um método simples chamado <tt>processo</tt> que converte uma string para letra maiúscula. Você também especificará que a classe implementará a interface TextFilter. Você utilizará também uma anotação <tt>@ServiceProvider</tt> para especificar que o TextFilter é um serviço que será registrado no tempo de compilação.</p> |
| |
| <ol> |
| <li> Clique com o botão direito no módulo <b>MyFilter</b> e selecione Nova > Classe Java.</li> |
| <li> Digite <b>UpperCaseFilter</b> como o nome da classe.</li> |
| <li> Selecione<b>com.mycompany.myfilter</b> na lista suspensa Pacote. Clique em Terminar.</li> |
| <li> Modifique a classe para adicionar o código a seguir. Salve as alterações.</li> |
| </ol> |
| |
| <pre>package com.mycompany.myfilter; |
| |
| import com.mycompany.textfilter.TextFilter; |
| import org.openide.util.lookup.ServiceProvider; <strong>@ServiceProvider(service=TextFilter.class)</strong> public class UpperCaseFilter <strong>implements TextFilter { |
| |
| public String process(String s) { |
| return s.toUpperCase(); |
| }</strong>}</pre> |
| |
| <p class="tips">Observe como a anotação é usada para especificar o provedor do serviço. Para mais informações sobre a anotação do <tt>@ServiceProvider</tt> e sobre o funcionamento do mecanismo ServiceceLoader no JDK 6, consulte a documentação dos utilitários API.</p> |
| |
| |
| |
| <h3><a name="05d"></a>Modificando módulo MavenWordEngine</h3> |
| <p>Neste exercício será modificado o manipulador de eventos no componente de janela Texto para utilizar um objeto pesquisar para chamar a interface TextFilter e acessar o método no MyFilter. Antes de adicionar o código ao manipulador de eventos é necessário declarar uma dependência no módulo TextFilter.</p> |
| |
| <ol> |
| <li>Clique com o botão direito do mouse no nó Bibliotecas no módulo <strong>MavenWordEngine</strong> e adicione uma dependência no módulo TextFilter.</li> |
| <li>Expanda os pacotes Origem do módulo <strong>MavenWordEngine</strong> e abra o <tt>TextTopComponent</tt> no editor de origem.</li> |
| <li>Modifique o método manipulador do botão <tt>jButton1ActionPerformed</tt> para adicionar o código a seguir. Salve as alterações. |
| |
| <pre>private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { |
| String s = text.getText(); |
| <strong>TextFilter filter = Lookup.getDefault().lookup(TextFilter.class); |
| if (filter != null) { |
| s = filter.process(s); |
| }</strong> text.setText(s); |
| }</pre> |
| </li> |
| </ol> |
| <p class="tips">É possível utilizar a conclusão do código para obter ajuda com o código.</p> |
| |
| <p>Nesta fase você pode verificar se seu aplicativo está funcionando corretamente. A seguir, você adicionará um novo componente de janela que exibirá um histórico do texto que processou utilizando o filtro.</p> |
| |
| </div> |
| |
| |
| <!-- =================================================================== --> |
| <!-- ++++++++++++++++++ Adding a LookupListener ++++++++++++++++++++++++ --> |
| |
| <h2><a name="06"></a>Adicionando objetos LookupListener e InstanceContent para o componente de janela Texto</h2> |
| <p>Neste exercício serão adicionados um listener e um campo para armazenar os conteúdos da área de texto ao clicar no botão "Filtro!".</p> |
| |
| <ol> |
| <li>No módulo <strong>MavenWordEngine</strong> adicione o objeto <tt>InstanceContent</tt> e modifique o construtor do <tt>TextTopComponent</tt> adicionando o código a seguir. |
| |
| <pre>public final class TextTopComponent extends TopComponent { |
| <strong>private InstanceContent content;</strong> public TextTopComponent() { |
| initComponents(); |
| setName(NbBundle.getMessage(TextTopComponent.class, "CTL_TextTopComponent")); |
| setToolTipText(NbBundle.getMessage(TextTopComponent.class, "HINT_TextTopComponent")); |
| // setIcon(Utilities.loadImage(ICON_PATH, true)); |
| |
| <strong>content = new InstanceContent(); |
| associateLookup(new AbstractLookup(content));</strong> }</pre> |
| </li> |
| <li>Modifique o método <tt>jButton1ActionPerformed</tt> para adicionar um valor antigo do texto ao objeto <tt>InstanceContent</tt> quando o botão for clicado. |
| |
| <pre>private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { |
| String s = text.getText(); |
| TextFilter filter = Lookup.getDefault().lookup(TextFilter.class); |
| if (filter != null) { |
| <strong>content.add(s);</strong> s = filter.process(s); |
| } |
| text.setText(s); |
| }</pre> |
| </li> |
| </ol> |
| |
| |
| <!-- =================================================================== --> |
| <!-- ++++++++++++++ Creating the History Module ++++++++++++++++++++++++ --> |
| |
| <h2><a name="07"></a>Criando módulo Histórico</h2> |
| <p>Nesta seção será criado um módulo chamado <strong>Histórico</strong> que exibirá o valor do <tt>InstanceContent</tt>. Para criar o módulo, você seguirá os mesmas etapas que executou ao criar os módulos TextFilter e MyFilter.</p> |
| |
| <div class="indent"> |
| <ol> |
| <li>Selecione Arquivo > Novo projeto (Ctrl-Shift-N).</li> |
| <li>Selecione Módulo NetBeans Maven na categoria Maven. Clique em Próximo.</li> |
| <li>Digite <strong>Histórico</strong> como o nome do projeto.</li> |
| <li>Clique no Navegador para definir a localização do projeto e localizar o diretório MavenPlatformWordApp. Clique em Terminar.</li> |
| <li>Adicione o módulo Histórico como uma dependência do projeto do <b>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</b>.</li> |
| </ol> |
| |
| <h3><a name="07a"></a>Criando um componente de janela no módulo Histórico</h3> |
| <p>Neste exercício será utilizado um assistente para adicionar um componente de janela ao módulo.</p> |
| |
| <ol> |
| <li>Clique com o botão direito em <b>Módulo NetBeans Histórico</b> na janela Projetos e selecione Novo > Outro para abrir a caixa de diálogo Novo Arquivo.</li> |
| <li>Selecione Janela na categoria Desenvolvimento do módulo. Clique em Próximo.</li> |
| <li>Selecione <b>editor</b> na lista suspensa Posição da janela. Clique em Próximo.</li> |
| <li>Digite <b>Histórico</b> no campo Prefixo do nome da classe. Clique em Terminar.<br /> |
| O assistente exibe uma lista de arquivos que serão criados e dos arquivos que serão modificados.</li> |
| </ol> |
| |
| <h3><a name="07b"></a>Modificando componente de janela Histórico</h3> |
| |
| <p>Você agora adicionará um elemento da área de texto ao componente de janela que será exibido nas strings filtradas.</p> |
| |
| <ol> |
| <li>Clique na aba Desenho do arquivo <tt>HistoryTopComponent.java</tt> no editor.</li> |
| <li>Arraste e solte uma área de texto a partir da paleta na janela.</li> |
| <li>Clique com o botão direito do mouse na área de texto e selecione Alterar nome da variável e, a seguir, digite <b>historyText</b> como o nome.</li> |
| <li>Adicione o campo <tt>resultado</tt><tt>privado</tt> e o código seguinte ao construtor do <tt>HistoryTopComponent</tt> de maneira que este observe o objeto pesquisar da classe String da janela ativa atual e exiba todos os objetos String recuperados nesta área de texto. |
| <pre class="examplecode"> |
| <strong>private Lookup.Result result;</strong> public HistoryTopComponent() { |
| initComponents(); |
| ... |
| |
| <strong>result = org.openide.util.Utilities.actionsGlobalContext().lookupResult(String.class); |
| result.addLookupListener(new LookupListener() { |
| public void resultChanged(LookupEvent e) { |
| historyText.setText(result.allInstances().toString()); |
| } |
| });</strong> }</pre> |
| </li> |
| </ol> |
| </div> |
| |
| <h2><a name="02c"></a>Construindo e Executando aplicativo</h2> |
| <p>Agora é possível testar o aplicativo.</p> |
| <ol> |
| <li>Clique com o botão direito no nó Projeto no <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecione Limpar.</li> |
| <li>Clique com o botão direito no nó Projeto no <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecione Construir com dependências.</li> |
| <li>Clique com o botão direito no nó Projeto no <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecione Executar.</li> |
| </ol> |
| |
| <p>Ao clicar em Executar, o IDE ativa o aplicativo da plataforma NetBeans. É possível abrir as janelas Histórico e Texto a no menu Janela.<br/> |
| |
| <img src="../images/tutorials/maven-quickstart/maven-final-app.png" alt="Captura de tela do aplicativo final da plataforma NetBeans" title="Captura de tela do aplicativo final da plataforma NetBeans" class="margin-around b-all" /> |
| </p> |
| <p>Ao digitar o texto na janela Texto e clicar no botão Filtro!, o texto é convertido em letra maiúscula e é adicionado ao conteúdo da janela Histórico.</p> |
| |
| <p>Este Guia de início rápido demonstra que criar um aplicativo da plataforma NetBeans utilizando Maven, não é muito diferente de criar um aplicativo utilizando Ant. A principal diferença é entender como o POM Maven controla como o aplicativo é montado. Para mais exemplos sobre como construir os aplicativos e módulos da plataforma NetBeans, consulte os tutoriais listados na <a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha de aprendizado da plataforma NetBeans</a>.</p> |
| |
| |
| <!-- ======================================================================================== --> |
| |
| |
| <h2><a name="nextsteps"></a>Veja também</h2> |
| |
| <p>Para mais informações sobre a criação e o desenvolvimento dos aplicativos, consulte os recursos a seguir.</p> |
| <ul> |
| <li><a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha de aprendizado da plataforma NetBeans</a></li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/">Javadoc da API do NetBeans</a></li> |
| </ul> |
| <p>Caso tenha alguma dúvida referente á plataforma Netbeans, envie-nos um e-mail para dev@platform.netbeans.org, ou consulte o <a href="https://netbeans.org/projects/platform/lists/dev/archive">arquivo de endereços da plataforma Netbeans</a>.</p> |
| |
| |
| <!-- ======================================================================================== --> |
| |
| |
| |
| </body> |
| |
| </html> |