Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Automação no ambiente
de desenvolvimento com
     Maven e ANT
        Responsável: Thiago Moretto
    Co-responsável: João...
Workshop GPEC/Tecsinapse

Roteiro
 
     Introdução
 
     ANT
 
     Maven
 
     Vantagens e desvantagens
 
     Mo...
Workshop GPEC/Tecsinapse

Introdução

 Ferramentas como o ANT e Maven
 desempenham papéis fundamentais em
 qualquer ambien...
Workshop GPEC/Tecsinapse

ANT

 Ferramenta versátil de construção que
 automatiza processo de compilação,
 empacotamento e...
Workshop GPEC/Tecsinapse

Visão geral do ANT
Workshop GPEC/Tecsinapse

Exemplo de um buildfile

 <project name=quot;MeuProjetoquot; default=quot;compilequot; basedir=q...
Workshop GPEC/Tecsinapse

O que é Maven?

                           ANT != Maven

 O Maven oferece uma infra-estrutura de...
Workshop GPEC/Tecsinapse

Vantagens do Maven

 
   Aumento de produtividade
 
   Melhor gestão do projeto
 
   Padroniz...
Workshop GPEC/Tecsinapse

Desvantages do Maven

 
   Menor versatilidade do que o ANT. Mas
 são ferramentas bem diferente...
Workshop GPEC/Tecsinapse

Modelo de desenvolvimento do Maven

 
   Um processo de construção fácil e
 uniforme.
 
    Fo...
Workshop GPEC/Tecsinapse

Visão geral do Maven




    Fonte: Maven 2 e Continuum: Automatizando o seu ambiente de desenvo...
Workshop GPEC/Tecsinapse

Visão geral do repositório Maven




    Fonte: Maven 2 e Continuum: Automatizando o seu ambient...
Workshop GPEC/Tecsinapse

Grupo e artefato

 Grupo e artefato são formas genéricas de
 representar e organizar projetos.

...
Workshop GPEC/Tecsinapse

Instalação

 Já esta instalado neste laboratório.
 $ mvn -version

 Mas para instalar, baixe do ...
Workshop GPEC/Tecsinapse

Configuração do proxy

 Crie o arquivo ~/.m2/settings.xml

 <settings>
  <proxies>
   <proxy>
  ...
Workshop GPEC/Tecsinapse

Uso

 Uso:
 $ mvn [ fase ] ...
 Uma fase contém vários plugins em ação.
 Ou:
 $ mvn plugin:funçã...
Workshop GPEC/Tecsinapse

Estrutura padrão de diretórios

 /
 /pom.xml Arquivo de definição do projeto
 /src/
 /src/main/j...
Workshop GPEC/Tecsinapse

Arquivo POM mínimo

 <project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>br.ucdb.gpec</gro...
Workshop GPEC/Tecsinapse

Compilação, empacotamento e montagem

 Compilando:
 $ mvn compiler:compile

 Empacotando:
 $ mvn...
Workshop GPEC/Tecsinapse

Artefato e repositório

 Instala no repositório local:
 $ mvn install

 A partir deste momento, ...
Workshop GPEC/Tecsinapse

Publicando em um repositório

   <distributionManagement>
   <repository>
    <id>repo</id>
    ...
Workshop GPEC/Tecsinapse

Dependências

   <dependencies>
   ...
   <dependency>
       <groupId>org.hibernate</groupId>
 ...
Workshop GPEC/Tecsinapse

Dependências

 As dependências são resolvidas tentando
 encontrar o artefado em qualquer um dos
...
Workshop GPEC/Tecsinapse

Dependências




 Dependências transitivas são incluídas
 automaticamente.
Workshop GPEC/Tecsinapse

Dependências

 É possível instalar um artefato manualmente
 em um repositório remoto.

 $ mvn de...
Workshop GPEC/Tecsinapse

Geração do site com documentação e relatórios

 Gera o site e o publica em um servidor Web.
 $ m...
Workshop GPEC/Tecsinapse

Parceria Maven e ANT

 Saudades do ANT?
 $ mvn ant:ant

 Caso houve modificações nas dependência...
Workshop GPEC/Tecsinapse

Integração com o Eclipse

 Habilita o projeto e cria o classpath no Eclipse,
 agora é só importá...
Workshop GPEC/Tecsinapse

Configuração do Eclipse

 Em Preferences > Java > Build Path >
 Classpath Variables crie a variá...
Workshop GPEC/Tecsinapse

Configuração do Eclipse

 Para executar o Maven dentro do Eclipse vá em
 Run > External Tool > E...
Workshop GPEC/Tecsinapse

Testes unitários

 
   O Maven já tem suporte ao Junit.
 
   Por padrão, um projeto só pode se...
Workshop GPEC/Tecsinapse

Outras características

 
   Integração com outras IDE's (Netbeans,
 IDEA...)
 
   Integração ...
Workshop GPEC/Tecsinapse

Referências bibliográficas

 ANT:
 http://ant.apache.org/


 Better Build with Maven 2:
 http://...
Upcoming SlideShare
Loading in …5
×

Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT

2,020 views

Published on

Published in: Technology
  • Be the first to like this

Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT

  1. 1. Automação no ambiente de desenvolvimento com Maven e ANT Responsável: Thiago Moretto Co-responsável: João Bosco Monteiro Workshop de Nivelamento Interno GPEC/Tecsinapse Versão: 1.0 23/Abr/07
  2. 2. Workshop GPEC/Tecsinapse Roteiro  Introdução  ANT  Maven  Vantagens e desvantagens  Modelo de desenvolvimento  Visão geral  Uso da ferramenta  Funcionamento  Testes unitários  Outras características  Conclusão
  3. 3. Workshop GPEC/Tecsinapse Introdução Ferramentas como o ANT e Maven desempenham papéis fundamentais em qualquer ambiente de desenvolvimento.  Automação  Padronização  Integração  Colaboração  Distribuição
  4. 4. Workshop GPEC/Tecsinapse ANT Ferramenta versátil de construção que automatiza processo de compilação, empacotamento e distribuição de um projeto.
  5. 5. Workshop GPEC/Tecsinapse Visão geral do ANT
  6. 6. Workshop GPEC/Tecsinapse Exemplo de um buildfile <project name=quot;MeuProjetoquot; default=quot;compilequot; basedir=quot;.quot;> <target name=quot;initquot;> <property name=quot;srcquot; value=quot;srcquot;/> <property name=quot;distquot; value=quot;classesquot;/> </target> <target name=quot;cleanquot; depends=quot;initquot;> <deltree dir=quot;${dist}quot;/> </target> <target name=quot;preparequot; depends=“cleanquot;> <mkdir dir=quot;${dist}quot;/> </target> <target name=quot;compilequot; depends=quot;init, clean, preparequot;> <javac srcdir=quot;${src}quot; destdir=quot;${dist}quot;/> </target> </project>
  7. 7. Workshop GPEC/Tecsinapse O que é Maven? ANT != Maven O Maven oferece uma infra-estrutura de administração de projetos, desde a compilação, a distribuição, a documentação até a colaboração. Baseado no conceito de POM (Project Object Model), arquivo pom.xml
  8. 8. Workshop GPEC/Tecsinapse Vantagens do Maven  Aumento de produtividade  Melhor gestão do projeto  Padronização de estrutura  Automatização das dependências  Baseado em plugins. Fácil extensão das funcionalidades  Automatiza teste unitários com JUnit
  9. 9. Workshop GPEC/Tecsinapse Desvantages do Maven  Menor versatilidade do que o ANT. Mas são ferramentas bem diferentes!  Curva de aprendizado considerável  Maior complexidade na configuração do ambiente
  10. 10. Workshop GPEC/Tecsinapse Modelo de desenvolvimento do Maven  Um processo de construção fácil e uniforme.  Fornece informações do projeto com qualidade.  Estimula boas práticas no desenvolvimento.  Facilita a colaboração e resolve as dependências.
  11. 11. Workshop GPEC/Tecsinapse Visão geral do Maven Fonte: Maven 2 e Continuum: Automatizando o seu ambiente de desenvolvimento (Palestra JustJava 2006); Dário Luís Oliveros e José Marcelo Santuci
  12. 12. Workshop GPEC/Tecsinapse Visão geral do repositório Maven Fonte: Maven 2 e Continuum: Automatizando o seu ambiente de desenvolvimento (Palestra JustJava 2006); Dário Luís Oliveros e José Marcelo Santuci
  13. 13. Workshop GPEC/Tecsinapse Grupo e artefato Grupo e artefato são formas genéricas de representar e organizar projetos. O grupo (groupID) é uma forma de organizar os projetos (por exemplo, os projetos do GPEC). Um artefato (artifactId) é um identificador do projeto, ou parte dele (módulo).
  14. 14. Workshop GPEC/Tecsinapse Instalação Já esta instalado neste laboratório. $ mvn -version Mas para instalar, baixe do site: http://maven.apache.org/ Descompacte e coloque o caminho do diretório bin/ do Maven no $PATH da máquina.
  15. 15. Workshop GPEC/Tecsinapse Configuração do proxy Crie o arquivo ~/.m2/settings.xml <settings> <proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>proxy.acad.ucdb.br</host> <port>3128</port> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy> </proxies> </settings>
  16. 16. Workshop GPEC/Tecsinapse Uso Uso: $ mvn [ fase ] ... Uma fase contém vários plugins em ação. Ou: $ mvn plugin:função Exemplo, criando nova estrutura: $ mvn archetype:create -DgroupId=br.ucdb.gpec -DartifactId=teste1
  17. 17. Workshop GPEC/Tecsinapse Estrutura padrão de diretórios / /pom.xml Arquivo de definição do projeto /src/ /src/main/java/... /src/main/resources/... /src/test/java/... ... /target/ (Destino de todas as saídas...)
  18. 18. Workshop GPEC/Tecsinapse Arquivo POM mínimo <project> <modelVersion>4.0.0</modelVersion> <groupId>br.ucdb.gpec</groupId> <artifactId>teste1</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>teste1</name> ... ... </project>
  19. 19. Workshop GPEC/Tecsinapse Compilação, empacotamento e montagem Compilando: $ mvn compiler:compile Empacotando: $ mvn package Montando: $ mvn assembly:assembly Necessário configurar.
  20. 20. Workshop GPEC/Tecsinapse Artefato e repositório Instala no repositório local: $ mvn install A partir deste momento, se o repositório for compartilhado, o projeto já estará disponível para todos. Publica em algum repositório remoto definido no arquivo pom.xml. $ mvn deploy
  21. 21. Workshop GPEC/Tecsinapse Publicando em um repositório <distributionManagement> <repository> <id>repo</id> <name>GPEC/Tecsinapse</name> <url>scp://repositorio.intranet/repo/</url> </repository> </distributionManagement> No arquivo ~/.m2/settings.xml é necessário configurar usuario e senha ou chave pública neste caso!
  22. 22. Workshop GPEC/Tecsinapse Dependências <dependencies> ... <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.2.0.ga</version> </dependency> ... </dependencies>
  23. 23. Workshop GPEC/Tecsinapse Dependências As dependências são resolvidas tentando encontrar o artefado em qualquer um dos repositórios configurados, caso não seja possível encontrar tal artefato, o Maven pede que este seja instalado manualmente no repositório local. $ mvn install:install-file -DgroupId=exemplo -DartifactId=xyz -Dversion=1.0 -Dpackaging=jar -Dfile=/tmp/xyz.jar
  24. 24. Workshop GPEC/Tecsinapse Dependências Dependências transitivas são incluídas automaticamente.
  25. 25. Workshop GPEC/Tecsinapse Dependências É possível instalar um artefato manualmente em um repositório remoto. $ mvn deploy:deploy-file -Dfile=... -DrepositoryId=repositorio.intranet -Durl=scp://...
  26. 26. Workshop GPEC/Tecsinapse Geração do site com documentação e relatórios Gera o site e o publica em um servidor Web. $ mvn site $ mvn site:site-deploy Java cross-reference, estilo Javadoc porém utilizando os arquivos fontes. $ mvn jxr:jxr Javadoc: $ mvn javadoc:javadoc
  27. 27. Workshop GPEC/Tecsinapse Parceria Maven e ANT Saudades do ANT? $ mvn ant:ant Caso houve modificações nas dependências, faça: $ mvn ant:clean ant:ant
  28. 28. Workshop GPEC/Tecsinapse Integração com o Eclipse Habilita o projeto e cria o classpath no Eclipse, agora é só importá-lo na ferramenta. $ mvn eclipse:eclipse $ mvn -Declipse.workspace=... eclipse:add-maven-repo Se houver mudanças nas dependências, feche o projeto dentro do Eclipse e execute: $ mvn eclipse:clean $ mvn eclipse:eclipse $ mvn -Declipse.workspace=... eclipse:add-maven-repo
  29. 29. Workshop GPEC/Tecsinapse Configuração do Eclipse Em Preferences > Java > Build Path > Classpath Variables crie a variável M2_REPO com o caminho de seu repositório. Neste caso digite ~/.m2/repository/ A partir deste momento o seu build path no Eclipse deve estar correto.
  30. 30. Workshop GPEC/Tecsinapse Configuração do Eclipse Para executar o Maven dentro do Eclipse vá em Run > External Tool > External Tools... Crie um novo Program. Em Location, localize o binário do Maven. Em Working Directory coloque: ${project_loc} Em Arguments, os argumentos para o Maven. Exemplo: package
  31. 31. Workshop GPEC/Tecsinapse Testes unitários  O Maven já tem suporte ao Junit.  Por padrão, um projeto só pode ser publicado em um repositório caso passe em todos os seus testes unitários.  Na pasta src/test/java é onde ficam os seus testes unitários, deve respeitar um padrão de nome para serem executados automaticamente.
  32. 32. Workshop GPEC/Tecsinapse Outras características  Integração com outras IDE's (Netbeans, IDEA...)  Integração com SCM (Subversion, CVS, ...)  Agrega o ANT.  Vários plugins podem ser encontrados pela Internet.  Suporte à herança e agregação de projetos.  Entre outras...
  33. 33. Workshop GPEC/Tecsinapse Referências bibliográficas ANT: http://ant.apache.org/ Better Build with Maven 2: http://www.mergere.com/m2book_download.jsp Site do Maven: http://maven.apache.org/ Automatizando seus projetos com o Maven 2 http://pbjug.org/jugs/documentos/maven_2

×