Introdução ao Maven

Post on 19-Feb-2017

96 views 0 download

Transcript of Introdução ao Maven

By Henrique SmocoIntrodução ao Maven

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

Agenda

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

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

Ferramentas orientadas a artefatoMavenCriação Pacotes Debian

Tipos de Ferramentas

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

O que é 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

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

Baseada em objetivos (Goals)compiletestpackageinstalldeploy

Convenção sobre Configuração

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

Comparando: Script Ant

Comparando: Script Maven

Estrutura de Diretórios

Estrutura de Diretórios Multi Modulo

Ciclo de Vida do Buildvalidatecompiletestpackageintegration-testverifyinstalldeploy

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

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>

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

Dependências

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>

JavadocCheckStyleCoberturaPMDWeblogic DeployerChangelog/Changes

Alguns Plugins 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

Demos