O documento apresenta um workshop sobre ferramentas de automação no desenvolvimento como ANT e Maven. Ele discute os conceitos e funcionalidades dessas ferramentas, incluindo vantagens e desvantagens, configuração, dependências, testes, documentação e integração com outras ferramentas.
Multi-core Parallelization in Clojure - a Case Study
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
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. 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. 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
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. 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. 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. 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. 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. 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. 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. 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.
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. 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...)
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. 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!
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
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. 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
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. 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. 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. 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. 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. 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