Prof. AndersonV. de Araújo
 É uma ferramenta de construção,
gerenciamento e compreensão de aplicações
 Também do grupo apache
 Revolucionou o gere...
 Dependency System
 Multi-module builds
 Consistent project structure
 Consistent build model
 Plugin oriented
 Proj...
1. Compilar o código-fonte
2. Copiar os recursos
3. Compilar e executar os testes
4. Empacotar o projeto
5. Distribuir (de...
 Diferentemente do ant, não tem tasks e targets
 Já existem tarefas pré-definidas, chamadas goals, que
são agrupadas por...
 A grande diferença entre o build.xml do Ant e o pom.xml do
Maven é o paradigma.
 No Ant usamos esse XML praticamente co...
 Baixar a última versão em
 http://maven.apache.org
 Adicionar a variável de sistema:
M2_HOME, com valor:
C:Program Fil...
 Vá no eclipse, help, install new software
 All available sites
 Selecione as opções:
 Maven IntegrationWTP
 Maven In...
 É o Project Object Model
 Representado pelo arquivo pom.xml
 Ele descreve o projeto / aplicação:
 Nome eVersão
 Tipo...
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.fatec.maven</groupId>
<artifactId>myshop</artifactId>
<version>1...
 Ao desenvolver um projeto, precisamos de bibliotecas
externas e o maven para gerenciá-las!
 Ele vai baixar, a partir do...
 compile: Uma dependência com escopo compile
está disponível em todas as fases. É o valor
padrão
 provided: Quando a bib...
<project>
...
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3...
 Local:
 É uma pasta em sua máquina (.m2 em %USER_HOME% )
 É criado quando qualquer comando maven for executado pela
pr...
 Uma phase é composta por uma série de
goals pré definidos
 Ao executar uma fase, todas as fases
anteriores a ela são ch...
 Representa uma tarefa específica que contribui
para a construção e gestão de um projeto
 Pode estar vinculado a zero ou...
 É uma sequência de fases (phases) bem
definidas que definem a ordem em que os
goals devem ser executados
 Aqui uma fase...
 validate: valida se o projeto está correto e todas as informações
necessárias estão disponíveis
 compile:compila o códi...
 O maven possui muitos plugins e goals
diferentes já prontos
 http://maven.apache.org/plugins/
 Fornece um conjunto de ...
 clean: Limpa o diretório target e o apaga depois
do build
 compiler: Compilar os códigos Java
 surefile: Executar test...
 É um conjunto de valores de configuração que
podem ser usadas para definir ou substituir os
valores padrão de uma constr...
 Tipos:
 Project: Definido no POM do projeto
 User: Definido no settings do Maven
(%USER_HOME%/.m2/settings.xml)
 Glob...
 É um plugin do Maven que cria um protótipo
(template) de projeto do Maven
 Usado na linha de comando:
 mvn archetype:c...
 archetype:generate
 cria um projeto Maven a partir de um modelo,
guiando o usuário através de um wizard que fará
as con...
Maven
Próximos SlideShares
Carregando em…5
×

Maven

222 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
222
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Maven

  1. 1. Prof. AndersonV. de Araújo
  2. 2.  É uma ferramenta de construção, gerenciamento e compreensão de aplicações  Também do grupo apache  Revolucionou o gerenciamento de dependências em Java  Não precisamos mais adicionar as bibliotecas no controle de versão!  Introduziu o conceito do repositório central Maven
  3. 3.  Dependency System  Multi-module builds  Consistent project structure  Consistent build model  Plugin oriented  Project generated sites
  4. 4. 1. Compilar o código-fonte 2. Copiar os recursos 3. Compilar e executar os testes 4. Empacotar o projeto 5. Distribuir (deploy) o projeto 6. Limpar tudo
  5. 5.  Diferentemente do ant, não tem tasks e targets  Já existem tarefas pré-definidas, chamadas goals, que são agrupadas por plugins  Por exemplo, o plugin compiler possui goals:  compile: compila o código fonte  testCompile: compila os unit tests  Pode invocar goal por goal, ou então usar os phases  Uma phase é composta por uma série de goals pré definidos  Por exemplo, a fase de package (empacotar) é composta por compilar, testar e gerar o jar  Não precisamos escrever nada disso  Basta declararmos o que o projeto necessita, que o maven se encarrega do resto
  6. 6.  A grande diferença entre o build.xml do Ant e o pom.xml do Maven é o paradigma.  No Ant usamos esse XML praticamente como uma linguagem de programação, onde você da comandos em relação ao build do projeto.  No Maven usamos o XML para definir a estrutura do projeto, e a partir dessas declarações o Maven possui targets bem definidos que usam essas informações para saber como realizar aquela tarefa.  Exemplo: para compilar com oAnt criamos um target que chama o javac, mas para compilar com o Maven usamos um target já existente (não o criamos), e ele vai usar a informação que define onde está o código fonte e para onde ele deve ser compilado (sendo que muitas dessas informações possuem convenções e defaults, e nem precisam ser configuradas)
  7. 7.  Baixar a última versão em  http://maven.apache.org  Adicionar a variável de sistema: M2_HOME, com valor: C:Program Filesapache-maven-3.1.0  Adicionar %M2_HOME%/bin ao path do windows como M2  Testar rodando mvn --version na linha de comando
  8. 8.  Vá no eclipse, help, install new software  All available sites  Selecione as opções:  Maven IntegrationWTP  Maven Integration for Eclipse  Caso não encontre, adicione o site: http://download.eclipse.org/technology/m2e/releases
  9. 9.  É o Project Object Model  Representado pelo arquivo pom.xml  Ele descreve o projeto / aplicação:  Nome eVersão  Tipo do Artifact (jar, war, …)  Endereço dos códigos-fontes  Dependências  Plugins  Perfis (configurações de build específicas)
  10. 10. <project> <modelVersion>4.0.0</modelVersion> <groupId>org.fatec.maven</groupId> <artifactId>myshop</artifactId> <version>1.0</version> </project>  modelVersion:Versão do POM  groupId: pacote da “empresa”  artifactId: nome do artefato (war, jar, ...)  version:Versão do artefato
  11. 11.  Ao desenvolver um projeto, precisamos de bibliotecas externas e o maven para gerenciá-las!  Ele vai baixar, a partir do repositório central de artefatos:  o POM de cada biblioteca externa configurada  o jar de cada biblioteca e de suas dependências, recursivamente (gerenciamento de bibliotecas transitivo)  Milhares de artefatos estão cadastrados no repositório central do maven  http://www.mvnrepository.com/  Os jars baixados são armazenados na pasta repository dentro de M2_HOME  Se mais de um projeto depende do mesmo jar, ele não é baixado de novo
  12. 12.  compile: Uma dependência com escopo compile está disponível em todas as fases. É o valor padrão  provided: Quando a biblioteca deve ser usada para compilar aplicação mas não é distribuída. Usada quando o servidor de aplicações deverá prover o JAR  runtime: Biblioteca não é necessária para a compilação e sim para a execução (ex. JDBC drivers)  test: Somente usadas para compilar e executar testes (ex. JUnit)
  13. 13. <project> ... <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.0.Final</version> </dependency> </dependencies> </project>
  14. 14.  Local:  É uma pasta em sua máquina (.m2 em %USER_HOME% )  É criado quando qualquer comando maven for executado pela primeira vez  Central:  Fornecido pela comunidade Maven  Contém um grande número de bibliotecas comumente utilizadas  Quando Maven não encontra qualquer dependência no repositório local, ele começa a procurar no repositório central  Necessita da internet e não precisa ser configurado  Remoto  Repositórios que podem ser adicionados ao POM quando as bibliotecas não se encontram no repositório central
  15. 15.  Uma phase é composta por uma série de goals pré definidos  Ao executar uma fase, todas as fases anteriores a ela são chamadas  Fazem parte do ciclo de build do Maven  Para executar:  mvn [phase-name]
  16. 16.  Representa uma tarefa específica que contribui para a construção e gestão de um projeto  Pode estar vinculado a zero ou mais fases  Um goal não vinculado a qualquer fase pode ser executado fora do ciclo de vida por invocação direta  A ordem de execução depende da ordem na qual o(s) goal(s) e a(s) fase(s) são invocadas  Por exemplo, considere o comando:  mvn clean dependency:copy-dependencies package  Os argumentos clean e package são fases de construção, enquanto dependency:copy-dependencies é um goal
  17. 17.  É uma sequência de fases (phases) bem definidas que definem a ordem em que os goals devem ser executados  Aqui uma fase representa um estágio do ciclo de vida
  18. 18.  validate: valida se o projeto está correto e todas as informações necessárias estão disponíveis  compile:compila o código fonte do projeto  test: executa os testes unitários do código compilado, usando uma ferramenta de testes unitários, como o junit  package: empacota o código compilado de acordo com formato escolhido (JAR,WAR, ...)  integration-test: processa e faz o deploy do pacote em um ambiente onde os testes de integração podem ser executados  verify: executa checagens para verificar se o pacote é válido e atende aos critérios de qualidade  install: instala o pacote no repositório local, para ser usado como dependência de outros projetos locais  deploy: feito em ambiente de integração ou de release, copia o pacote final para um repositório remoto para ser compartilhado entre desenvolvedores e projetos
  19. 19.  O maven possui muitos plugins e goals diferentes já prontos  http://maven.apache.org/plugins/  Fornece um conjunto de goals que podem ser executados:  mvn [plugin-name]:[goal-name]  É possível adicionar outros plugins não existentes no POM
  20. 20.  clean: Limpa o diretório target e o apaga depois do build  compiler: Compilar os códigos Java  surefile: Executar testes JUnit e criar relatórios de testes  jar: Construir JAR  war: ConstruirWAR  javadoc: Gerar Javadoc  antrun: Executar um conjunto de tasks do ant de qualquer fase mencionada no build
  21. 21.  É um conjunto de valores de configuração que podem ser usadas para definir ou substituir os valores padrão de uma construção do Maven  Por exemplo, o caminho do servidor de banco de dados no desenvolvimento, teste e ambientes de produção  Serve para personalizar a construção para diferentes ambientes  Como produção, desenvolvimento, tests, stage, ...  São especificados no POM usando os elementos activeProfile e profile  São acionados de diferentes maneiras
  22. 22.  Tipos:  Project: Definido no POM do projeto  User: Definido no settings do Maven (%USER_HOME%/.m2/settings.xml)  Global: Definido no settings global do Maven (%M2_HOME%/conf/settings.xml)  Ativação:  Explicitamente usando o console  Através de configurações do Maven  Com base em variáveis de ambiente (variáveis usuário / sistema)  Configurações de SO (por exemplo, famíliaWindows)  Presente / faltando arquivos
  23. 23.  É um plugin do Maven que cria um protótipo (template) de projeto do Maven  Usado na linha de comando:  mvn archetype:create  Só definir o groupID, artifactID, version e o package referentes ao seu projeto  Depois disso você terá uma estrutura de projeto pronta para ser usada  Exemplo:  maven-archetype-webapp: Gera um projeto inicial para web
  24. 24.  archetype:generate  cria um projeto Maven a partir de um modelo, guiando o usuário através de um wizard que fará as configurações necessárias  archetype:create-from-project  cria um archetype a partir de um projeto existente.  archetype:crawl  busca no repositório por archetypes e atualiza o catálogo

×