O Apache Maven é uma ferramenta de gerenciamento de projetos de software e compreensão de pacotes. Baseado no conceito de um modelo de objeto do projeto (POM), O Maven pode gerir um projeto de construção (compilação), elaboração de relatórios e documentação de uma única central de informações.
Um Project Object Model, fornece todas as configurações para um único projeto. A configuração geral cobre o nome do projeto, seu proprietário e suas dependências de outros projetos. Também pode configurar fases individuais do processo de construção, que são implementados como plug-ins. Projetos maiores poderiam ser divididos em vários módulos, ou subprojetos, cada um com seu próprio POM. Cada um pode então escrever um POM raiz através do qual pode-se compilar todos os módulos com um único comando.
O Maven utiliza templates chamados de Archetypes ou arquétipos que são um conjunto de ferramentas de modelagem do projeto Maven. Um arquétipo é definido como um padrão ou modelo inicial a partir da qual todos os outros objetos do mesmo tipo são feitos contemplando as melhores praticas para cada modelo. Os Arquétipos ajudam autores a criar modelos de projeto Maven para os usuários, e oferece aos usuários os meios para gerar versões parametrizadas desses modelos de projeto.
Para instalar o Maven e o M2Eclipse: clique aqui
Criando Uma Aplicação Web com Maven
Após instalar e testar o Apache Maven em seu sistema operacional e também ter instalado o plug-in para utilização do Maven no Eclipse, vamos criar um primeiro projeto Maven para nos aproximar desta ferramenta. Estes projeto vai cobrir primeiramente as funcionalidades básicas do Maven, se você abrir o arquivo pom.xml na raiz do projeto, você verá que existe uma dependência padrão do JUnit.
O JUnit é um framework que nos possibilita realizar testes unitários em nossos programas Java. Por enquanto não vamos utilizar mais nenhuma dependência do Maven pois adicionaremos outras dependências gradualmente assim que utilizarmos outros frameworks em nossa aplicação, vamos utilizar um arquétipo e seu recurso de compressão no formato WAR para que possamos efetuar um Deploy da aplicação na instancia principal do Tomcat.
1 – Clique em File-> New -> Other procure e expanda a pasta Maven, selecione Maven Project e clique em Next:
2 – Aqui você pode configurar a localização do seu projeto, deixe o padrão e clique em Next:
3 – Esta tela nos possibilita escolher entre vários tipos de arquétipos do Maven, escolha maven-archetype-webapp e clique em Next:
4 – Preencha os parâmetros para seu arquétipo, basicamente você vai utilizar a convenção utilizada para pacotes Java e um nome de projeto (DaMaven) e clique em Finish quando terminar de preencher os parâmetros, utilize a figura abaixo para referencia:
5 – Assim que o projeto for criado você percebe que há um erro, por falta de dependência: “The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path“. Precisamos configurar o projeto para suprir as configurações necessárias. Clique com o botão direito do mouse em cima do projeto e escolha propriedades:
6 – Na janela de propriedades selecione a opção Java Build Path -> Add Library…-> Server Runtime e clique em Next:
7 – Clique em Apache Tomcat e clique em Finish:
8 – Seu projeto já possui todos os requisitos necessários. Abra a pagina index.jsp e utilize o código abaixo e rode o programa:
9 – Com a aplicação já testada, vamos compilar o projeto utilizando o Maven para que seja gerado um arquivo de pacote com nossa aplicação no formato War que será utilizado para efetuar um Deploy no servidor Tomcat. Na barra de ferramentas clique nas opções de compilação e escolha Maven Build:
10 – Na configuração de compilação em Goals, digite: clean install e clique em Run:
11 – Após o Build bem sucedido, abra a pasta Target e você verá o arquivo comprimido com nossa aplicação DaMaven.war.
12 – É isso! O Maven já cumpriu seu primeiro proposito, agora fora do Eclipse vamos importar este arquivo para o servidor Tomcat, certifique-se que a instancia principal do Tomcat está rodando em seu computador:
13 – Abra a instancia local do Tomcat no seu navegador:
14 – Clique em Manager App para acessar as configurações do seu servidor, digite seu login e senha. Em Deploy escolha a opção War File Deploy e acesse o seu arquivo DaMaven.war compilado pelo Maven no Eclipse, o arquivo esta localizado na pasta Target no diretório do seu projeto:
15 – Após o Deploy sua aplicação já esta na lista de aplicações do servidor Tomcat e pode ser manuseada:
16 – Para abrir clique no link da sua aplicação ou digite seu nome no seu navegador:
Exemplo:
Neste exemplo criamos um projeto Maven com o Archetype do tipo WebApp, sua dependência padrão é do JUnit, responsável por testes unitários na aplicação Java, que por padrão já comtempla está dependência, compilamos o projeto básico e utilizamos o arquivo compresso de extensão War para efetuar um deploy da aplicação pronta no servidor Tomcat.
JSP – index.jsp
<!DOCTYPE html> <html> <head> <style> #header { background-color:DarkGreen; color:white; text-align:center; padding:5px; } #nav { line-height:30px; background-color:#eeeeee; height:400px; width:100px; float:left; padding:5px; } #section { width:450px; float:left; padding:10px; } #footer { background-color:DarkGreen; color:white; clear:both; text-align:center; padding:5px; } h2 {color: DarkGreen} </style> </head> <body> <div id="header"> <h1>Desenvolvimento Aberto</h1> </div> <div id="nav"> Java<br> Maven<br> JSP<br> JPA<br> JSF<br> Servlet<br> Spring<br> Hibernate<br> Tomcat<br> Oracle DB<br> </div> <div id="section"> <h2>Desenvolvimento Aberto</h2> <p> Desenvolvimento Aberto é uma organização voltada para o aprendizado e discussão de técnicas de desenvolvimento focado em algumas linguagens de programação sendo parcialmente/totalmente abertas ou com licenças gratuitas para desenvolvedores de cada uma de suas respectivas marcas registradas. </p> <p> Desenvolvimento Aberto foi escrito e desenvolve utilizando ferramentas gratuitas disponibilizadas pelas melhores empresas de software da atualidade, incluindo a própria hospedagem e design deste site, sendo assim, também proporciona conteúdo gratuito, isso quer dizer que você não paga nada para aprender e utilizar as tecnologias de ponta que podem ser manuseadas através das linguagens de programação mais requisitadas pelas empresas no mercado atual. </p> </div> <div id="footer"> Desenvolvimento Aberto © desevolvimento.aberto@live.com </div> </body> </html>