Introdução prática ao Apache Maven, identificando suas principais características e como sua utilização pode aumentar a qualidade e o entendimento de qualquer projeto Java.
Para que serve:O Maven é utilizado para gerenciar "builds" de projetos. Com ele é possível configurar um ambiente de desenvolvimento padronizado seguindo boas práticas, permitindo compilação, gerência de dependências e distribuição de uma aplicação editando apenas um arquivo e utilizando conceitos de convenção sobre configuração.
Em que situação o tema é útil:A utilização do Maven possibilita um ganho de qualidade e padronização em projetos. Rotinas como a criação da estrutura do projeto, compilação e distribuição são pré-definidas automaticamente, liberando o desenvolvedor para trabalhar na aplicação em si e não na configuração do ambiente.
Introdução ao Apache Maven:O arquivo pom.xml é considerado o coração de um projeto Maven. Com a configuração de poucos descritores é possível gerenciar dependências, centralizar documentação sobre o projeto e principalmente compilar e distribuir uma aplicação. Contando ainda com o recurso de archetypes é possível criar inúmeros tipos de aplicações diretamente pelo Maven de forma simples e rápida.
Este artigo apresenta uma introdução ao Apache Maven versão 2.x, demonstrando através de um exemplo prático que até o famoso “Hello World” pode tirar proveito do Maven e ilustrando como desenvolvedores podem se beneficiar de seu uso para ganhar agilidade e padronização em seus projetos.
O Maven é uma ferramenta utilizada para gerenciar projetos em Java e simplificar a vida do programador, auxiliando no ciclo de desenvolvimento incluindo compilação, controle de bibliotecas, distribuição e relatórios estatísticos. O projeto nasceu a partir das dificuldades encontradas principalmente em gerenciar a compilação de projetos e no controle de bibliotecas.
O Maven possui funcionalidades similares ao mais conhecido Apache Ant, mas utiliza um mecanismo de configuração declarativo e baseado no conceito de convenção ao invés de configuração. Isso permite, por exemplo, a compilação e a distribuição de uma aplicação com um arquivo de configuração mínimo, apenas seguindo algumas convenções estabelecidas. A configuração do Maven se baseia em um único arquivo, chamado pom.xml, que contém os metadados de um projeto. É a partir deste arquivo que toda a mágica por trás do Maven acontece.
Principais objetivos do Maven
Simplificar a criação e distribuição de projetos
Iniciar um novo projeto do zero não precisa ser necessariamente uma tarefa complicada e tediosa. Pensando nisso o Maven conta com um recurso extremamente útil, chamado archetype. Este recurso permite criar toda a estrutura de um projeto automaticamente. Para isso, existem vários tipos de archetypes disponíveis, entre eles:
- maven-archetype-webapp: cria a estrutura de uma aplicação web básica;
- maven-archetype-j2ee-simple: cria a estrutura de uma aplicação Java EE simples;
- struts2-archetype-blank: cria a estrutura de uma aplicação Struts2 básica;
- myfaces-archetype-helloworld: cria a estrutura de uma aplicação JSF utilizando MyFaces.
Outra etapa essencial em qualquer projeto é sua distribuição. Sem uma padronização e automação por uma ferramenta como Ant ou Maven, este processo torna-se repetitivo, tedioso e sujeito a falhas.
Através do Maven o processo de empacotamento de uma aplicação se restringe a apenas uma linha de comando: mvn package, que se encarrega de criar o arquivo de distribuição do seu projeto (por exemplo, .jar, .war ou .ear).
Promover melhores práticas como a definição de um layout padrão para diretórios
Muito da simplicidade e poder do Maven pode ser atribuído à padronização que ele propõe. Um projeto no Maven conta com uma estrutura básica idêntica a outro projeto Maven. Isso quer dizer que um desenvolvedor que já trabalhou com Maven em algum projeto vai se sentir muito confortável em qualquer outro projeto que utilize esta ferramenta. Dessa maneira, não será gasto tempo adicional criando ou inventando novas estruturas de diretórios, convenções ou scripts Ant customizados para cada projeto.
A estrutura inicial de diretórios de uma aplicação simples pode ser visto na Figura 1.
Para uma aplicação web a estrutura de diretórios será semelhante à Figura 2.
Cada diretório da estrutura tem um propósito definido:
- src/main/java: código fonte da aplicação organizado em pacotes;
- src/main/resources: recursos que a aplicação necessita;
- src/main/webapp: diretório para aplicações web, web.xml, imagens, HTML;
- src/test/java: testes unitários;
- ...
Quer ler esse conteúdo completo? Tenha acesso completo
Confira outros conteúdos:
Por Eduardo Em 2008Perguntas frequentes
Quem somos?Por que a programação se tornou a profissão mais promissora da atualidade?Como faço para começar a estudar?Em quanto tempo de estudo vou me tornar um programador?Sim, você pode se tornar um programador e não precisa ter diploma de curso superior!O que eu irei aprender estudando pela DevMedia?Principais diferenciais da DevMediaQual o investimento financeiro que preciso fazer para me tornar um programador?Como funciona a forma de pagamento da DevMedia?Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado! Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um Full-Stack Dev!Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.
Aceitar