[1] O documento introduz os principais conceitos do Apache Maven, incluindo o que é Maven, seu arquivo POM, repositórios e ciclo de vida de projetos. [2] Ele também explica como configurar o Maven no Eclipse e criar um primeiro projeto Maven. [3] Finalmente, o documento lista alguns benefícios do uso do Maven, como gerenciamento de dependências e padronização do ambiente de desenvolvimento.
1. INTRODUÇÃO A PROJETOS
BASEADOS EM APACHE MAVEN
08 de Dezembro 2016
Nome: Fabian Cesar Pereira Brandão Manoel
E-mail: fabiancpbm@gmail.com
2. OUTLINE
1.0. O que é MAVEN
2.0. Principais conceitos
3.0. Benefícios
4.0. Primeiro projeto MAVEN no
Eclipse
5.0. Conclusão
6.0. Referências bibliográficas
4. 4Introdução a projetos baseados em Apache Maven
1.0. O QUE É O MAVEN
Ferramenta que gerencia dependências e ciclo de vida de
projetos de software. Esta gerencia inclui:
Facilidade de compilação, empacotamento, testes
unitários, etc;
5. 5Introdução a projetos baseados em Apache Maven
Ferramenta que gerencia dependências e ciclo de vida de
projetos de software. Esta gerencia inclui:
Possibilidade de união e automatização do processo de
geração de um sistema;
1.0. O QUE É O MAVEN
6. 6Introdução a projetos baseados em Apache Maven
Ferramenta que gerencia dependências e ciclo de vida de
projetos de software. Esta gerencia inclui:
Centralizar informações do projeto organizadamente, como
dependências, resultado de testes, documentação, etc;
1.0. O QUE É O MAVEN
7. 7Introdução a projetos baseados em Apache Maven
Ferramenta que gerencia dependências e ciclo de vida de
projetos de software. Esta gerencia inclui:
Tendência à boas práticas de programação;
Controle de versões geradas;
1.0. O QUE É O MAVEN
8. 8Introdução a projetos baseados em Apache Maven
1.0. O QUE É O MAVEN
Projeto MAVEN é uma pasta com:
Arquivo pom.xml;
Diretório de código fonte src;
9. OUTLINE
1.0. O que é MAVEN
3.0. Benefícios
4.0. Primeiro projeto MAVEN no
Eclipse
5.0. Conclusão
6.0. Referências bibliográficas
10. 10Introdução a projetos baseados em Apache Maven
2.0. PRINCIPAIS CONCEITOS
2.1. Artefato
2.2. Arquivo POM
2.3. Repositório remoto e local
2.4. Goals, plugins e phases
2.5. Ciclo de vida
2.6. Estrutura padrão de projeto
11. 11Introdução a projetos baseados em Apache Maven
2.0. PRINCIPAIS CONCEITOS
•Para o MAVEN, todo projeto é um Artefato.
•Estes artefatos são armazenados em um repositório de
artefatos;
•Podem estar nos formatos WAR, EAR ou JAR;
•Cada artefato tem as Coordenadas Maven definidas no
pom.xml. Estas coordenadas são:
2.1. Artefatos
•GroupId;
•ArtifactId;
•Version;
12. 12Introdução a projetos baseados em Apache Maven
2.0. PRINCIPAIS CONCEITOS
Dependências: São Artefatos que determinado artefato
(projeto) depende para funcionar. Para possuir a dependência,
deve-se conhecer as Coordenadas Maven;
2.1. Artefatos
13. 13Introdução a projetos baseados em Apache Maven
2.2. Arquivo POM
2.0. PRINCIPAIS CONCEITOS
•É a unidade básica do MAVEN no formato XML, onde são declaradas
todas as informações do projeto. Baseado nisso, seu MAVEN poderá:
•É usado apenas como modelo de dados hierárquicos;
•Segue um exemplo de um arquivo pom.xml:
Validar, compilar, testar, empacotar, instalar …
14. 14Introdução a projetos baseados em Apache Maven
2.2. Arquivo POM
2.0. PRINCIPAIS CONCEITOS
•É a unidade básica do MAVEN no formato XML, onde são declaradas
todas as informações do projeto. Baseado nisso, seu MAVEN poderá:
•É usado apenas como modelo de dados hierárquicos;
•Segue um exemplo de um arquivo pom.xml:
Construir estrutura de trabalho…
15. 15Introdução a projetos baseados em Apache Maven
2.2. Arquivo POM
2.0. PRINCIPAIS CONCEITOS
•É a unidade básica do MAVEN no formato XML, onde são declaradas
todas as informações do projeto. Baseado nisso, seu MAVEN poderá:
•É usado apenas como modelo de dados hierárquicos;
•Segue um exemplo de um arquivo pom.xml:
Definir dependências.
16. 16Introdução a projetos baseados em Apache Maven
2.2. Arquivo POM
2.0. PRINCIPAIS CONCEITOS
•É a unidade básica do MAVEN no formato XML, onde são declaradas
todas as informações do projeto. Baseado nisso, seu MAVEN poderá:
•É usado apenas como modelo de dados hierárquicos;
•Segue um exemplo de um arquivo pom.xml:
Definir dependências.
22. 22Introdução a projetos baseados em Apache Maven
2.2. Arquivo POM
2.0. PRINCIPAIS CONCEITOS
ModelVersion
GroupId
ArtifactId
Versão de trabalho do pom.xml
Grupo ou empresa do projeto
Identificação do artefato. Deve ser
único dentro do mesmo GroupId
23. 23Introdução a projetos baseados em Apache Maven
2.2. Arquivo POM
2.0. PRINCIPAIS CONCEITOS
packaging Formato de pacote de projeto
Version Versão do artefato
24. 24Introdução a projetos baseados em Apache Maven
2.2. Arquivo POM
2.0. PRINCIPAIS CONCEITOS
Version Versão do artefato
Correção de médios e grandes
erros
Revisões básicas
Artefato ainda em fase de
produção
Modificação significativa
25. 25Introdução a projetos baseados em Apache Maven
2.3. Repositório remoto e local
2.0. PRINCIPAIS CONCEITOS
SEU PROJETO
REPOSITÓRIO DE ARTEFATOS LOCAL
REPOSITÓRIO CENTRAL DE ARTEFATOS REMOTO
INTERNET INTRANET
...
26. 26Introdução a projetos baseados em Apache Maven
2.4. Goals, plugins e phases
2.0. PRINCIPAIS CONCEITOS
PLUGINs
GOALs: Tarefas pré-definidas
PHASEs: Série de goals
pré-definidos
27. 27Introdução a projetos baseados em Apache Maven
2.5. Ciclo de vida
2.0. PRINCIPAIS CONCEITOS
•O MAVEN impõe aos seus artefatos um determinado ciclo de
vida. Ou seja, todo tempo de vida de um artefato (construção e
distribuição) está claramente definido;
•Os ciclos de vida contêm phases pré-definidas;
•Os ciclos de vida são:
DEFAULT CLEAN
SITE
Toda fase de construção
responsável por tornar o
projeto em um Artefato
local, ou seja, direcioná-
lo à pasta .m2.
Toda fase de construção
responsável por limpar o
diretório alvo, permitindo
iniciar o ciclo DEFAULT
totalmente limpo.
Toda fase de construção
responsável construir a
documentação do
projeto no site.
28. 28Introdução a projetos baseados em Apache Maven
2.5. Ciclo de vida
2.0. PRINCIPAIS CONCEITOS
DEFAULT
VALIDATE
COMPILE
TEST
PACKAGE
VERIFY
INSTALL
DEPLOY
valida o projeto, verificando se o projeto possui padrão documental.
compila o código fonte.
realiza os testes unitários.
empacota o código compilado em um JAR, WAR, EAR.
verifica resultado de testes de integração para garantia de qualidade.
adiciona o pacote gerado ao repositório local.
adiciona o pacote no repositório remoto.
29. 29Introdução a projetos baseados em Apache Maven
2.6. Estrutura padrão de projeto
2.0. PRINCIPAIS CONCEITOS
Local onde o Maven armazena todos os seus resultados gerados.
Local de suporte às necessidades do teste.
Local onde encontra-se os testes unitários a serem executados.
Local de suporte às necessidades do projeto.
Local onde encontra-se o Código fonte a ser utilizado como projeto
Local que concentra todas as informações do seu projeto.
30. OUTLINE
1.0. O que é MAVEN
2.0. Principais conceitos
4.0. Primeiro projeto MAVEN no
Eclipse
5.0. Conclusão
6.0. Referências bibliográficas
31. 31Introdução a projetos baseados em Apache Maven
3.0. BENEFÍCIOS
Centralização de informações: todas
informações do projeto são centralizadas em pom.xml,
assim, evitamos repetições de processos de builders,
por exemplo;
32. 32Introdução a projetos baseados em Apache Maven
3.0. BENEFÍCIOS
Padronização do ambiente de
desenvolvimento: os métodos de tempo de vida
e construção, ao serem gerenciados pelo Maven,
padronizam os processos em todos os ambientes de
desenvolvimento;
33. 33Introdução a projetos baseados em Apache Maven
3.0. BENEFÍCIOS
Gerenciamento de dependências: o
Maven cuida de todas as dependências dos seus
projetos e as adiciona no classpath. Caso uma
dependência dependa de outro recurso, este também
será instalado no classpath;
34. 34Introdução a projetos baseados em Apache Maven
3.0. BENEFÍCIOS
Facilidade de compreensão: ao adotar o
modelo de organização do Maven, torna-se mais fácil
a compreensão e localização de códigos. Assim, um
desenvolvedor pode não conhecer um código, mas
saberá, por exemplo, como funciona seu ciclo de vida;
35. OUTLINE
1.0. O que é MAVEN
2.0. Principais conceitos
3.0. Benefícios
5.0. Conclusão
6.0. Referências bibliográficas
36. 36Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSTALE O MAVEN: Na página de Download
do Maven, instale os arquivos binários do apache-
maven.
37. 37Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSTALE O MAVEN: Descompacte o arquivo
em um local bem definido. O objetivo é que esse
arquivo seja reconhecido como variável de ambiente
do PC em trabalho.
38. 38Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSIRA O MAVEN ÀS VARIÁVEIS DE
AMBIENTE: Isso permitirá que as aplicações com o
maven possam serem feitas via CMD.
39. 39Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSIRA O MAVEN ÀS VARIÁVEIS DE
AMBIENTE:
Em avançado clique
em “variáveis de ambiente”
40. 40Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSIRA O MAVEN ÀS VARIÁVEIS DE
AMBIENTE:
Na janela que se abre, selecione o botão “novo” no
local desejado. Então, adicione a variável de ambiente
da seguinte forma:
41. 41Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSIRA O MAVEN ÀS VARIÁVEIS DE
AMBIENTE:
Depois, edite o Path das variáves de ambiente.
42. 42Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSIRA O MAVEN ÀS VARIÁVEIS DE
AMBIENTE:
Modifique assim
o arquivo path:
43. 43Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
VERIFIQUE SE O JAVA POSSUI
VARIÁVEIS DE AMBIENTE.
Após isto, certifique-se através do commando java
–version se o java possui variáveis de ambiente em seu
local de trabalho no CMD.
Caso não tenha, realizer o mesmo procedimento já
feito para o Maven.
44. 44Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
APÓS ISTO,
Veja se tudo ocorreu corretamente digitando “mvn
–version-” no CMD.
45. 45Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSIRA O MAVEN ÀS VARIÁVEIS DE
AMBIENTE:
Após isto, certifique-se através do commando java
–version se o java possui variáveis de ambiente em seu
local de trabalho no CMD.
46. 46Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
COM TUDO CONFIGURADO, INSTALAR
O MAVEN PARA O ECLIPSE.
No Eclipse, vá em Help -> Eclipse Marketplace,
pesquise por M2E e instale o plugin.
47. 47Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSTALAR O MAVEN PARA O ECLIPSE.
Com o plugin instalado, vá em Window ->
Preferences. Procure em Maven -> Installations -> Add
48. 48Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
INSTALAR O MAVEN PARA O ECLIPSE.
Com o plugin instalado, vá em Window ->
Preferences. Procure em Maven -> Installations -> Add
Adicione o diretório onde o
Maven está instalado
49. 49Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
USAR O MAVEN NO ECLIPSE.
Para criar um projeto maven, cria-se em file -> New
-> Maven Project. Preencha todas as informações
necessárias sobre o projeto.
51. 51Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
Observe como foi construída
a estrutura de projeto.
52. 52Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
Target é o ponto alvo de toda
a construção feita do seu
projeto em processo de build.
53. 53Introdução a projetos baseados em Apache Maven
4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE
Será visto agora como se dá a configuração básica
de um projeto no Maven através do POM.xml.
60. 60Introdução a projetos baseados em Apache Maven
5.0. CONCLUSÃO
Pode-se, através de tudo visto até então, que o Maven
é uma poderosa ferramenta que realiza todo o
tratamento de um projeto, desde a sua criação e
dependências, até seu compartilhamento e
empacotamento. Sendo assim, o desenvolvedor pode
focar com maior qualidade nos objetivos finais do
projeto.
61. 61Introdução a projetos baseados em Apache Maven
5.0. CONCLUSÃO
Caelum. Processo build de com maven[online]. 2008. Referência
disponível em http://blog.caelum.com.br/processo-de-build-com-o-
maven/;
•Caelum. Sobre builders, Ant e Maven[online].Referência disponível em
http://www.caelum.com.br/apostila-java-testes-xml-design-
patterns/apendice-o-processo-de-build-ant-e-maven/#10-9-discussao-em-
sala-de-aula-ide-ant-ou-maven
• State of the art. Sobre instalação do Maven [online]. Referência
disponível em http://luizricardo.org/2014/06/instalando-configurando-e-
usando-o-maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/
62. 62Introdução ao Arduino: fundamentos e aplicações de microcontroladores
AGRADECIMENTOS
OBRIGADO!
fabiancpbm@gmail.com