• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Maven 2
 

Maven 2

on

  • 1,668 views

Apresentação sobre o Maven 2, originalmente apresentada no encontro do Grupo de Usuários Java da Paraíba em 2005.

Apresentação sobre o Maven 2, originalmente apresentada no encontro do Grupo de Usuários Java da Paraíba em 2005.

Statistics

Views

Total Views
1,668
Views on SlideShare
1,596
Embed Views
72

Actions

Likes
0
Downloads
29
Comments
0

4 Embeds 72

http://coderwall.com 64
http://paper.li 5
http://twitter.com 2
http://us-w1.rockmelt.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Maven 2 Maven 2 Presentation Transcript

    • Maven 2.0Gerenciando os seus projetos com o Maven 2.0 2005
    • Maurício Linhares http://maujr.org/
    • Qual o problema?Fazer o build dos projetos deve sersimples, você não deve passar horastentando gerar um artefato a partir do código fonte.
    • Jorge ThiagoTrabalham em partes diferentes de um mesmo projeto
    • •  Usa o NetBeans 5.0•  Monta os seus builds com Jorge o Ant•  Usa a estrutura de diretórios comum do NetBeans•  Não usa um sistema de controle de versão
    • •  Usa o Eclipse 3.1 com o Web Tools Platform (WTP) Thiago•  Faz os builds dentro do Eclipse, com o WTP•  Usa a estrutura de diretórios do WTP•  Também não usa um sistema de controle de versão
    • Um belo dia... ... Jorge fica doente E surge um bug no seu projeto que precisa ser resolvido
    • ThiagoQuem é que tem que resolver?
    • Problemas?•  Thiago nunca usou o NetBeans•  Thiago nem imagina como é que se usa o Ant•  Não é possível importar o projeto de Jorge para o Eclipse, os diretórios não batem
    • ThiagoAlguns dias de trabalho depois...
    • Qual a moral da história? Os projetos devem ser padronizados!
    • Assuntos•  Como surgiu o Maven?•  O que é o Maven?•  Como o Maven funciona?•  Padronizando os projetos•  Maven e os seus plugins
    • Como surgiu o Maven?•  Necessidade de padronização dos sub- projetos dentro do projeto Jakarta Turbine•  Era necessário evitar o envio de arquivos .jar para o controle de versão•  Era necessário facilitar o entendimento de cada sub-projeto no sistema
    • O que é o Maven?•  Gerenciador de builds•  Gerenciador de dependências•  Gerador de documentação•  Provedor de ferramentas para a avaliação da qualidade do projeto
    • Objetivos do Maven (1-2)•  Tornar o processo de desenvolvimento visível e transparente•  Prover uma maneira simples de analisar o status de um projeto•  Diminuir o tempo de adequação de novos desenvolvedores•  Reunir ferramentas necessárias uniformemente
    • Objetivos do Maven (2-2)•  Evitar configurações inconsistentes•  Prover uma estrutura comum para todos os projetos•  Foco no desenvolvimento das aplicações, não no build dos projetos
    • Como o Maven funciona?•  Os projetos são descritos usando o Project Object Model (POM)•  Os plugins são invocados e executados sobre o projeto em questão através das informações do POM
    • O que fica no POM?•  Desenvolvedores•  Dependências•  Configuração de plugins•  Controle de versão•  Repositórios...
    • Exemplo de POM<project> <modelVersion>4.0.0</modelVersion> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-core-api-container</artifactId> <name>Cargo Core Container API</name> <version>0.7-SNAPSHOT</version> <packaging>jar</packaging> <dependencies/> <build/></project>
    • Padronizando o projeto•  O Maven define uma estrutura de diretórios default•  A estrutura padrão é resultado da experiência dos próprios desenvolvedores do Maven•  É possível (mas não é aconselhável) configurar uma estrutura de diretórios diferente
    • Estrutura de diretórios•  src/ -- pasta raiz –  main/ -- tronco principal •  java/ -- código fonte Java •  resources/ -- recursos (arquivos de configuração, imagens, etc) •  webapp/ -- aplicação web Java –  test/ -- tronco de testes unitários e de integração •  java/ -- código fonte dos testes do JUnit •  resources/ -- recursos dos testes •  cactus/ -- códigos dos testes de integração do Cactus –  site/ -- tronco principal da documentação
    • Fases de um projeto no MavenGerar código inicial Empacotar Compilar Testes de integração Testes unitários Instalar Implantar
    • Repositórios•  Locais de armazenamento de diversos tipos de artefatos•  Toda a gerencia do repositório é feita pelo próprio Maven•  Não é necessário declarar caminhos relativos para os artefatos
    • Buscando dependências Repositório Repositório Remoto local<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.1.2</version></dependency>
    • Dependências ou artefatos•  São mantidas nos repositórios (locais ou remotos)•  São transitivas•  Podem ser atualizadas automaticamente pelo Maven
    • Transitividade das dependências Dependência•  Não é necessário declarar declarada toda a árvore de dependências, o Maven só A precisa saber a dependência raiz B C D
    • Documentação e relatórios•  Gera um site descritivo do projeto (listas de discussão, desenvolvedores, dependências)•  Gera relatórios sobre o projeto (qualidade, JavaDoc, arquivos fonte)
    • O Maven e seus Plugins•  Meios de extensão para o Maven•  São buscados nos repositórios disponíveis•  São configurados dentro do POM•  Existem mais de 80 plugins oficiais catalogados
    • Configuração de um plugin<plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin></plugins>
    • Avaliando a migração para o Maven 2.0•  Quando não existe padronização•  Quando o padrão é o Ant•  Quando o padrão é o Maven 1.0
    • Sem padrão•  Define um padrão para todos os projetos•  Facilita a integração e o reconhecimento do código•  Centraliza as informações sobre projetos e sub-projetos
    • Ant como padrão•  Diminui a quantidade de configuração necessária para o build•  Tasks do Ant podem ser invocados pelo Maven•  Quantidade imensa de plugins prontos para ser utilizados
    • Maven 1.0 como padrão•  O desenvolvimento do Maven 1.0 está congelado•  Novos plugins e integração com outras ferramentas está sendo feito com base no Maven 2
    • ConclusãoO objetivo principal do Maven como ferramentaé padronizar os projetos, para que eles possamser gerenciados e entendidos com maisfacilidade, para que os envolvidos sepreocupem mais com o desenvolvimento emenos com as configurações
    • Perguntas?
    • Referências•  MASSOL, Vincent; O BRIEN, Timothy. Maven: A Developer s Notebook. O Reilly, 2005.•  MASSOL, Vincent. Maven 2.0 – Improve your build patterns. Palestra no Javapolis 2005 – disponível em http://javapolis.com/