Maven Repository

Olá pessoal!

Assim como anunciado anteriormente hoje é dia de repositório, hoje é dia de MAVEN!


Então preparem-se, se ajeita na cadeira, puxa a pipoca que o post irá começar!

Você percebe em seu ambiente de trabalho/desenvolvimento que existem desperdícios?
Não desperdício água,luz... e sim TEMPO, PROCESSO.

Pensem no seguinte, sempre que você dá o start no desenvolvimento de um projeto novo você precisa:

  1. Configurar o ambiente em uma máquina
  2. Modificar as versões de bibliotecas utilizadas
  3. Gerar sempre novas versões
  4. Transferir o conhecimento para a equipe sobre todos os passos anteriores
E dependendo do tamanho da sua equipe isso lhe custaria longas e longas horas.

O Maven surge como um gerenciador de configurações, um repositório!

E ele pode:

  1. Gerenciar dependências
  2. Compilar o código fonte
  3. Compilar e executar os códigos de testes
  4. Empacotar projetos
  5. Facilitar a escrita de arquivos de build usando conceitos de convenção sobre configuração
  6. Realizar a gestão de dependências de projeto
  7. Versionar diferentes SCM's
  8. Auxiliar em todo o ciclo de construção do projeto
  9. Deployar em diferentes servidores
  10. Gerar documentação (wiki)
  11. Verificar a qualidade do código

etc... etc... etc...

Bom, passando por esse overview rápido e ligeiro vamos aprofundar o assunto!

O que seria o Maven?

Maven seria um repositório é um diretório local, onde todos os jars do projeto, jar biblioteca, plugins ou quaisquer outros artefatos específicos do projeto são armazenados e podem ser usados pelo Maven facilmente.

Maven possui três tipos de repositórios:

  1. Local
  2. Central
  3. Remoto
O repositório local está em uma pasta em sua máquina. Ele é criado quando você executar qualquer comando maven pela primeira vez.
Ele contém todas as dependências da biblioteca (artefatos,  plugins, etc) do seu projeto.

O repositório remoto referem-se a qualquer outro tipo de repositório, acessado por uma variedade de protocolos como o file :/ / e http:// .
Estes repositórios pode ser um repositório remoto verdadeiramente criado por um terceiro para fornecer os seus artefatos para download
por exemplo, repo.maven.apache.org e uk.maven.org repositório central do Maven).

O repositório central são inventários oficiais distribuídos geograficamente.
Onde o usuário pode optar em espelhar qualquer repositório distribuído apenas alterando seu settings.xml.

Estruturalmente os repositórios locais e remotos compartilham da mesma arquitetura, de mesma forma que os scripts podem ser facilmente executado em ambos os lados, ou eles podem ser sincronizados para fora de linha utilizada.

Vantagens:

 → Simplicidade: No Maven um único comando do Maven, baixa as dependências necessárias, roda os testes, configura o ambiente, baixa o servidor de aplicação, faz deploy do sistema e abre o browser com a tela de login do sistema.

 →  Automatização: O nível de automatização muito alto e com pouquíssima configuração. Refletindo no processo de release de uma versão de projeto, deixando o processo muito mais simples.

 → Qualidade: Sempre que o usuário executa build project ou gera um deploy em um servidor, o maven se encarrega de rodar todos os testes unitários.
 Caso algum teste unitário falhe, ele aborta o build/deploy. Tornando-se uma excelente política para forçar os testes e a qualidade de software.

 → Build: Sempre que o Maven realiza um build de sua solução, ele utiliza muito o conceito de convenção sobre configuração. Ocasionando o ganho de tempo, ganho de performance, maior produtividade e conseqüentemente menos erros de configurações.

 → Contexto e Informações: É possível ter de forma contextualiza as informações úteis do projeto. O Maven pode gerar um site contendo diversas informações como: (Lista de Desenvolvedores, Links para o controle de versão, Links para o sistema de build continuo, Links para o sistema de issue tracking, Lista de discussão, Dependências do projeto, Resultado da execução dos testes, Javadoc e documentação)

O recurso pode ser customizado e parametrizado. Todas as informações podem ser coletadas e condensadas no site de forma automática no maven.

Desvantagens:

  1. Grande curva de aprendizado
  2. Maior complexidade na configuração do ambiente


 Vamos dar uma olhada na arquitetura

 Visão geral Maven


 Visão do repositório Maven


                                     

 Ciclo de Vida



1. process-resources (processar recursos)
2. compile (compilar)
3. process-test-resources (processar recursos de teste)
4. test-compile (testar compilação)
5. test (testar)
6. package (empacotar)
7. install (instalar)
8. deploy (implantar)

 Bom pessoal, espero que tenham gostado!
 Até a próxima galera!
 o/

About thallitaceleste

0 comments:

Postar um comentário