Introdução a projetos baseados em apache maven

62
INTRODUÇÃO A PROJETOS BASEADOS EM APACHE MAVEN 08 de Dezembro 2016 Nome: Fabian Cesar Pereira Brandão Manoel E-mail: [email protected]

Transcript of Introdução a projetos baseados em apache maven

Page 1: Introdução a projetos baseados em apache maven

INTRODUÇÃO A PROJETOS BASEADOS EM APACHE MAVEN

08 de Dezembro 2016

Nome: Fabian Cesar Pereira Brandão ManoelE-mail: [email protected]

Page 2: Introdução a projetos baseados em apache maven

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

Page 3: Introdução a projetos baseados em apache maven

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

Page 4: Introdução a projetos baseados em apache maven

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;

Page 5: Introdução a projetos baseados em apache maven

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

Page 6: Introdução a projetos baseados em apache maven

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

Page 7: Introdução a projetos baseados em apache maven

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

Page 8: Introdução a projetos baseados em apache maven

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;

Page 9: Introdução a projetos baseados em apache maven

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

Page 10: Introdução a projetos baseados em apache maven

10Introdução a projetos baseados em Apache Maven

2.0. PRINCIPAIS CONCEITOS

2.1. Artefato2.2. Arquivo POM2.3. Repositório remoto e local2.4. Goals, plugins e phases2.5. Ciclo de vida2.6. Estrutura padrão de projeto

Page 11: Introdução a projetos baseados em apache maven

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;

Page 12: Introdução a projetos baseados em apache maven

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

Page 13: Introdução a projetos baseados em apache maven

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 …

Page 14: Introdução a projetos baseados em apache maven

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…

Page 15: Introdução a projetos baseados em apache maven

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.

Page 16: Introdução a projetos baseados em apache maven

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.

Page 17: Introdução a projetos baseados em apache maven

17Introdução a projetos baseados em Apache Maven

2.2. Arquivo POM

2.0. PRINCIPAIS CONCEITOS

Page 18: Introdução a projetos baseados em apache maven

18Introdução a projetos baseados em Apache Maven

2.2. Arquivo POM

2.0. PRINCIPAIS CONCEITOS

Page 19: Introdução a projetos baseados em apache maven

19Introdução a projetos baseados em Apache Maven

2.2. Arquivo POM

2.0. PRINCIPAIS CONCEITOS

Page 20: Introdução a projetos baseados em apache maven

20Introdução a projetos baseados em Apache Maven

2.2. Arquivo POM

2.0. PRINCIPAIS CONCEITOS

Page 21: Introdução a projetos baseados em apache maven

21Introdução a projetos baseados em Apache Maven

2.2. Arquivo POM

2.0. PRINCIPAIS CONCEITOS

Page 22: Introdução a projetos baseados em apache maven

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

Page 23: Introdução a projetos baseados em apache maven

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

Page 24: Introdução a projetos baseados em apache maven

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

Page 25: Introdução a projetos baseados em apache maven

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

...

Page 26: Introdução a projetos baseados em apache maven

26Introdução a projetos baseados em Apache Maven

2.4. Goals, plugins e phases

2.0. PRINCIPAIS CONCEITOS

PLUGINs

GOALs: Tarefas pré-definidasPHASEs: Série de goals pré-definidos

Page 27: Introdução a projetos baseados em apache maven

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.

Page 28: Introdução a projetos baseados em apache maven

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.

Page 29: Introdução a projetos baseados em apache maven

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.

Page 30: Introdução a projetos baseados em apache maven

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

Page 31: Introdução a projetos baseados em apache maven

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;

Page 32: Introdução a projetos baseados em apache maven

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;

Page 33: Introdução a projetos baseados em apache maven

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;

Page 34: Introdução a projetos baseados em apache maven

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;

Page 35: Introdução a projetos baseados em apache maven

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

Page 36: Introdução a projetos baseados em apache maven

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.

Page 37: Introdução a projetos baseados em apache maven

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.

Page 38: Introdução a projetos baseados em apache maven

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.

Page 39: Introdução a projetos baseados em apache maven

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”

Page 40: Introdução a projetos baseados em apache maven

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:

Page 41: Introdução a projetos baseados em apache maven

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.

Page 42: Introdução a projetos baseados em apache maven

42Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

INSIRA O MAVEN ÀS VARIÁVEIS DE AMBIENTE:

Modifique assimo arquivo path:

Page 43: Introdução a projetos baseados em apache maven

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.

Page 44: Introdução a projetos baseados em apache maven

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.

Page 45: Introdução a projetos baseados em apache maven

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.

Page 46: Introdução a projetos baseados em apache maven

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.

Page 47: Introdução a projetos baseados em apache maven

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

Page 48: Introdução a projetos baseados em apache maven

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

Page 49: Introdução a projetos baseados em apache maven

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.

Page 50: Introdução a projetos baseados em apache maven

50Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Page 51: Introdução a projetos baseados em apache maven

51Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Observe como foi construída a estrutura de projeto.

Page 52: Introdução a projetos baseados em apache maven

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.

Page 53: Introdução a projetos baseados em apache maven

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.

Page 54: Introdução a projetos baseados em apache maven

54Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Page 55: Introdução a projetos baseados em apache maven

55Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Page 56: Introdução a projetos baseados em apache maven

56Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Page 57: Introdução a projetos baseados em apache maven

57Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Page 58: Introdução a projetos baseados em apache maven

58Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Page 59: Introdução a projetos baseados em apache maven

59Introdução a projetos baseados em Apache Maven

4.0. PRIMEIRO PROJETO MAVEN NO ECLIPSE

Page 60: Introdução a projetos baseados em apache maven

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.

Page 61: Introdução a projetos baseados em apache maven

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/

Page 62: Introdução a projetos baseados em apache maven

62Introdução ao Arduino: fundamentos e aplicações de microcontroladores

AGRADECIMENTOS

[email protected]