O documento resume as principais funcionalidades do Maven, incluindo: (1) Maven promove convenção sobre configuração e gera artefatos de build; (2) O POM define as configurações e dependências do projeto; (3) O ciclo de vida do Maven compreende fases sequenciais para compilar, testar e empacotar o projeto.
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
X Bemobi Tech Talk - Maven
1. X Bemobi Tech Tal k
Maven
Di ego Magal hães 22/ 02/ 2013
2. Definição
Mais do que uma simples ferramenta de build
Promove convention over configuration
Hierárquico (≠ ANT)
Bemobi Tech Tal k Dat a: 09/11/2012
3. 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 Tal k Dat a: 09/11/2012
4. 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 Tal k Dat a: 09/11/2012
5. 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 Tal k Dat a: 09/11/2012
6. 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 Tal k Dat a: 09/11/2012
7. 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 Tal k Dat a: 09/11/2012
1 2
3
4
8. Dependências
Use *Management (DependencyManagement, PluginManagement etc)
Herança de versões de bibliotecas e plugins
Bemobi Tech Tal k Dat a: 09/11/2012
Parent Pom Pom dos projetos filhos
9. 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 Tal k Dat a: 09/11/2012
10. 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 Tal k Dat a: 09/11/2012
11. 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 Tal k Dat a: 09/11/2012
12. 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 Tal k Dat a: 09/11/2012
13. 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 Tal k Dat a: 09/11/2012