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://...
Próximos SlideShares
Carregando em…5
×

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

1.983 visualizações

Publicada em

Publicada em: Tecnologia
1 comentário
0 gostaram
Estatísticas
Notas
  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

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

×