introdução ao maven
TRANSCRIPT
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