x bemobi tech talk - maven

15
X Bemobi Tech Talk Maven Diego Magalhães 22/02/2013

Upload: diego-magalhaes

Post on 29-Jun-2015

186 views

Category:

Technology


0 download

DESCRIPTION

Visão geral sobre Maven 3 os desenvolvedores da BeMobi

TRANSCRIPT

Page 1: X Bemobi Tech Talk - Maven

X Bemobi Tech TalkMavenDiego Magalhães 22/02/2013

Page 2: X Bemobi Tech Talk - Maven

Definição

Mais do que uma simples ferramenta de build Promove convention over configuration Hierárquico (≠ ANT)

Bemobi Tech Talk Data: 09/11/2012

Page 3: X Bemobi Tech Talk - Maven

POM e Artefatos

Planta do seu build, todas as configurações Geração de um ou mais artefatos por build (Normalmente um) Identificação via artifactId, groupId e versão Versões “-SNAPSHOT” Artefatos são guardados em repositórios locais/remotos

Bemobi Tech Talk Data: 09/11/2012

Page 4: X Bemobi Tech Talk - Maven

POM e Artefatos

Herança através de um SUPER POM (Parent POM) Definição de bibliotecas atrás de dependencyManagement Definição de regras, reporters e formatadores Perfis de execução

Bemobi Tech Talk Data: 09/11/2012

Page 5: X Bemobi Tech Talk - Maven

Build dos seus projetos

Goal é uma única ação Cada Phase é uma coleção de Goals O ciclo de vida do maven é composto por uma sequência de Phases Plugins disponibilizam seus próprios Goals, que por sua vez podem ser

incluidos em Phases

Bemobi Tech Talk Data: 09/11/2012

Page 6: X Bemobi Tech Talk - Maven

Archetypes

Templates de projetos Use um ou construa a partir de mvn archetype:create-from-project Acaba com a bagunça do ctrl+c e ctrl+v dos “projetos base”

Bemobi Tech Talk Data: 09/11/2012

Page 7: X Bemobi Tech Talk - Maven

Dependências

São guardadas em repositórios (local – mvn install ou remoto – mvn deploy) Referências a repositórios podem estar no POM ou no settings.xml Como o maven resolve qual dependência usar? A mais próxima!

Bemobi Tech Talk Data: 09/11/2012

1 2

3

4

Page 8: X Bemobi Tech Talk - Maven

Dependências

Use *Management (DependencyManagement, PluginManagement etc) Herança de versões de bibliotecas e plugins

Bemobi Tech Talk Data: 09/11/2012

Parent Pom Pom dos projetos filhos

Page 9: X Bemobi Tech Talk - Maven

Integração com SCM

mvn release:prepare• versões em todos os poms perdem o sufixo “-SNAPSHOT”

• cria a tag no SCM da versão

mvn release:perform• Faz o deploy da tag no svn

• mvn deploy

• atualiza os POMs para a próxima versão de desenvolvimento (Snapshot)

Bemobi Tech Talk Data: 09/11/2012

Page 10: X Bemobi Tech Talk - Maven

Integração com SCM

mvn release:prepare – versões em todos os poms perdem o sufixo “-SNAPSHOT”, cria a tag no SCM da versão

mvn release:perform– Faz o deploy da tag no svn, mvn deploy e atualiza os POMs para a próxima versão de desenvolvimento (Snapshot)

Bemobi Tech Talk Data: 09/11/2012

Page 11: X Bemobi Tech Talk - Maven

Rodando sua aplicação

Rodar qualquer main class de java ou ferramenta externa• mvn exec:java –Dexec.mainClass=“com.bemobi.teste”

Cria um ambiente de classpath a partir das dependencias do projeto Usamos para testes (jetty:run)

Bemobi Tech Talk Data: 09/11/2012

Page 12: X Bemobi Tech Talk - Maven

Integrando com legado

Suporta integração com ANT Mvn ant:ant

• build.xml

• maven-build.xml

• maven-build.properties

Ideal para fazer coisas arbitrária no ciclo do maven (copiar arquivos, gerar output no console etc)

Bemobi Tech Talk Data: 09/11/2012

Page 13: X Bemobi Tech Talk - Maven

Sites e Relatórios

Site com changelogs, notas, javadoc e outros relatórios Não existe mais seção reporting (maven 2), agora plugins geram

relatórios• Javadoc

• Java XRef

• Tag List

• Project Info

• Check Style

• Surefire

• PMD

• FindBugs

• Sonar

• Cobertura

• Versions

Bemobi Tech Talk Data: 09/11/2012

Page 14: X Bemobi Tech Talk - Maven

Dúvidas?

Bemobi Tech Talk Data: 09/11/2012

Page 15: X Bemobi Tech Talk - Maven

Fim

Bemobi Tech Talk Data: 09/11/2012