Construindo e integrando aplicações Java com o Maven

Paulo Jerônimo @ Lado Servidor
Última atualização em 10/June/08 às 10:35

Construindo e integrando aplicações Java com o Maven

Apresentação do Curso

Paulo Jerônimo

Lado Servidor

Descrição

  • Treinamento presencial sobre ferramentas para a construção e integração de aplicações Java: Maven, Continuum, Hudson, Archiva e Artifactory, cobrindo ainda, práticas para o desenvolvimento ágil de software como Test-Driven Development (TDD) e Continuous Integration;
  • Apache Maven:
    • Ferramenta para gerenciamento e automação de projetos em Java;
    • Similar ao Ant porém, com modelo de configuração mais simples;
    • Utiliza uma construção conhecida como Project Object Model (POM), que descreve todo o processo de construção de um projeto de software, suas dependências de outros módulos e componentes e sua seqüência de construção;

Descrição (2)

  • Apache Maven:
    • Contém tarefas pré-definidas que realizam funções bem conhecidas como compilação e empacotamento de código;
    • Gera documentação e relatórios sobre o projeto;
    • Construído para trabalhar em rede;
    • Baseado em plugins, que podem ser baixados de repositórios (os mesmos utilizados por outros projetos Java do Apache e outras organizações);

Descrição (3)

  • Continuous Integration (ou integração contínua) é o ato de se realizar a integração de um software produzido por um time várias vezes ao dia, garantindo que a base de código permaneça consistente ao final de cada integração.
  • Continuum e Hudson são algumas das ferramentas para integração contínua que suportam o modelo de construção de aplicações do Maven;

Descrição (4)

  • Apache Continuum:
    • Servidor para integração contínua capaz de construir projetos Java baseados no Maven (1 e 2), Ant e Shell Scripts;
  • Hudson:
    • Servidor para integração contínua e monitor de execuções de jobs;
    • Ênfase na facilidade de uso e na extensibilidade (+ de 50 plug-ins);
    • Ganhador do prêmio Duke's Choice Awards na categoria "Developer Solutions";

Tópicos cobertos no curso

  • Módulo 1 (28h): Maven
    • Introdução
      • O que é o Maven?
      • Convenção ao invés de configuração
      • Breve histórico do processo de construção de aplicações Java
      • Porque simplesmente não utilizar o Ant?
    • Desenvolvendo um projeto simples
      • Introdução
      • Instalação
      • A coordenação do Maven
      • Repositórios e o POM
      • Geração do site do projeto
      • Primeira execução
      • Dicas e truques

Tópicos cobertos no curso (2)

  • Módulo 1 (28h): Maven
    • O POM e o relacionamento entre os projetos
    • O ciclo de vida da construção
    • Plugins
    • Arquétipos
    • Profiles
    • Geração do site
    • Montadores (Assemblies)
    • Escrevendo plugins
    • O repositório
    • Desenvolvendo aplicações Java EE

Tópicos cobertos no curso (3)

  • Módulo 2 (20h): Ferramentas para integração contínua e para gerencimanento de repositórios do Maven
    • O que é integração contínua?
    • Instalação, configuração e uso de ferramentas para integração contínua
    • Instalação, configuração e uso de gerenciadores de repositórios para o Maven

Didática

  • Apresentação de slides (formato S5) e vídeos;
    • Slides contendo links e servindo como roteiro de aula;
    • Vídeos demonstrando tarefas comuns de instalação, configuração e execução das ferramentas;
  • Explicação de exemplos:
    • Em sua maioria, didáticos;
    • Em várias situações reais, demonstrando a aplicação das ferramentas em aplicações existentes e funcionais disponibilizadas como software livre;
  • Resolução de exercícios;
  • Durante o período do curso, os alunos poderão também retirar suas dúvidas sobre os tópicos apresentados utilizando uma lista de discussão gerenciada pelo instrutor;

  • Notas:
    • Para um melhor aproveitamento, é importante que o aluno:
      • Explore as referências! Vá além dos tópicos cobertos no curso;
      • Faça os exercícios extras, propostos no final de cada capítulo;

Pré-requisitos (desejáveis)

  • Experiência no desenvolvimento Java EE envolvendo tecnologias e ferramentas como:
  • Experiência em sistemas gerenciadores de versões de software:
  • Experiência básica em Linux (utilizaremos o Ubuntu):
    • Comandos de uso cotididiano;
    • Interpretação de Shell script (será utilizado o Bash);

Referências

Referências (2)

Material

  • Como material deste treiamento, serão entregues para cada aluno 1 ou 2 DVDs contendo:
    • 1 máquina virtual VMware instalada com o Ubuntu contendo todos os softwares configurados para a execução no treinamento;
    • Estes slides;
    • Vídeos;
    • Exemplos didáticos e aplicações reais (software livre) utilizando as ferramentas abordadas;
    • Exercícios solucionados;
    • Cópias de documentações encontradas livremente na Internet;

Calendário

  • Duração total: 48 horas
  • Módulo 1 (32h): Início em 19/Jun/2008 e fim em 02/Jun/2008:
Ter Qua Qui Sex
19 20
24 25 26 27
01 02
  • Módulo 2 (16h): Início em 03/Jun/2008 e fim em 09/Jul/2008:
Ter Qua Qui Sex
03 04
08 09
  • Horários das aulas: das 08:00 às 12:00 (4h diárias)

Eu!

Eu! (2)

  • Experiência anterior nos tópicos deste treinamento:
    • Montagem do ambiente de desenvolvimento/integração para projeto de Portal B2B para o Banco do Brasil através da Sun Microsystems utilizando o Maven e o Continuum;
    • Treinamento para turma do SERPRO: Maven, Continuum;

Vocês!?