X Bemobi Tech Talk Maven Diego Magalhães 22/02/2013
Jun 29, 2015
X Bemobi Tech TalkMavenDiego Magalhães 22/02/2013
Definição
Mais do que uma simples ferramenta de build Promove convention over configuration Hierárquico (≠ ANT)
Bemobi Tech Talk Data: 09/11/2012
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
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
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
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
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
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
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
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
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
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
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
Dúvidas?
Bemobi Tech Talk Data: 09/11/2012
Fim
Bemobi Tech Talk Data: 09/11/2012