20
By Henrique Smoco Introdução ao Maven

Introdução ao Maven

Embed Size (px)

Citation preview

Page 1: Introdução ao Maven

By Henrique SmocoIntrodução ao Maven

Page 2: Introdução ao Maven

ContextualizandoO que é MavenMaven x Ant ou GradleEstrutura de DiretóriosCiclo de Vida do BuildPOMDependênciasInstalaçãoDemos

Agenda

Page 3: Introdução ao Maven

Tem que ser reproduzívelTem que gerar o artefato final (ear, war, jar, etc)Tem que ser fácil de manter e executarTem que ser bem documentado

Build Automatizado

Page 4: Introdução ao Maven

Ferramentas de ScriptAntRake (Baseado em Ruby)Gradle (Baseado em Groovy)E outras...

Ferramentas orientadas a artefatoMavenCriação Pacotes Debian

Tipos de Ferramentas

Page 5: Introdução ao Maven

É uma ferramenta de Build,De gerenciamento de dependências,De documentação

O que é Maven?

Page 6: Introdução ao Maven

Facilitar o processo de buildFornecer um sistema de build uniformeFornecer informações sobre a qualidade do projetoFornecer orientações de melhores práticas de

desenvolvimentoPermitir a migração transparente para novas funcionalidades

Objetivos do Maven

Page 7: Introdução ao Maven

Tem uma estrutura de diretórios pré definidaCódigoTestesDocumentação

Baseada em objetivos (Goals)compiletestpackageinstalldeploy

Convenção sobre Configuração

Page 8: Introdução ao Maven

Comparado com AntPadroniza estrutura do projetoFornece gerenciamento de dependênciasToda a funcionalidade para build do projeto integradaRelatórios e documentação integradosSetup fácil de projetos multiplataforma

Comparado com GradleTem um arquivo de projeto mais verbosoPouco a nenhum conhecimento de programação requeridoGrande suporte da comunidadeMelhor suporte da IDE (Eclipse tem melhorado)

Maven x Ant ou Gradle

Page 9: Introdução ao Maven

Comparando: Script Ant

Page 10: Introdução ao Maven

Comparando: Script Maven

Page 11: Introdução ao Maven

Estrutura de Diretórios

Page 12: Introdução ao Maven

Estrutura de Diretórios Multi Modulo

Page 13: Introdução ao Maven

Ciclo de Vida do Buildvalidatecompiletestpackageintegration-testverifyinstalldeploy

Page 14: Introdução ao Maven

Ciclo de Vida do Buildvalidate - Valida se projeto está OK e tem toda informação

disponívelcompile - Compila os fontestest - Roda os testes (Não devem precisar de empacotamento ou

deploy)package - Cria o artefato a partir do código compilado (ex. JAR).integration-test - Processa e faz deploy do artefato, se necessário,

num ambiente onde os testes de integração podem rodarverify - Roda qualquer verificação para validar critérios de

qualidadeinstall - Instala o artefato no repositório localdeploy - Feito num ambiente de integração ou release, copia o

artefato final para o repositorio remoto para uso dos outros desenvolvedores

Page 15: Introdução ao Maven

Equivalente ao build.xml do AntApenas um POM por móduloContém a Identificação do projeto, dependências, etc

POM

<groupId>br.com.meuexemplo</groupId> <artifactId>agenda</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging>

Page 16: Introdução ao Maven

Resolução de dependênciashttp://mvnrepository.com/

Dependências

Page 17: Introdução ao Maven

Escopo das dependênciascompileprovidedruntimetest

Declarando no POM:

Dependências

<dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency> </dependencies>

Page 18: Introdução ao Maven

JavadocCheckStyleCoberturaPMDWeblogic DeployerChangelog/Changes

Alguns Plugins Maven

Page 19: Introdução ao Maven

Acesse http://maven.apache.org/Faça o download (ex.: apache-maven-3.3.3-bin.zip)Extraia o arquivo baixadoConfigure a variável de ambiente M2_HOME apontando para

onde extraiu o arquivoAdicione a pasta bin do Maven no pathFeito

Para testar:mvn -h

Instalação

Page 20: Introdução ao Maven

Demos