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 ambientAutomação no ambiente de desenvolvimento com Maven e ANT

2,022 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

×