Veja como em pouco tempo já conseguimos criar um projeto no Maven!
Instalação
Maven é uma ferramenta Java, portanto, é necessário ter o Java instalado para prosseguir.
Para início de conversa, faça o download do Maven e siga as instruções de instalação. Após este passo digite o seguinte comando no terminal ou no prompt de linha de comando:
mvn –version ou também mvn –v. No meu computador, por exemplo, apareceu o seguinte resultado:
Atenção amantes do Linux, sim eu uso Windows!
Atenção, segundo o próprio site do Maven, dependendo da sua configuração de rede, você pode precisar de mais configurações extras. Em casa, por exemplo, não tenho restrições de proxy, já no trabalho, é necessário configurar informações de acesso a rede(usuário e senha para servidor proxy).
Criando um projeto
Abra uma nova linha de comando e execute o seguinte comando:
mvn archetype:generate -DgroupId=br.com.maven3.tutorial -DartifactId=projeto.exemplo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Caso tenha acabado de instalar o Maven a primeira execução pode demorar um um pouco. Não estranhe, o Maven irá instalar as últimas atualizações dos artefatos necessários(plugins e outros arquivos) para o seu repositório local. Na prática você pode precisar executar mais de uma vez para que realmente funcione. Como disse, não estranhe a princípio. Isto pode acontecer devido ao servidor remoto que demorar muito e ocasionar os conhecidos timeouts antes do término dos downloads necessários.
No meu computador, que já possui o Maven configurado demorou apenas 7 segundos, veja:
Você perceberá que ao executar o comando será criado um diretório com o mesmo nome associado como um artifactId.
Para ficar mais fácil de apresentar esta estrutura resolvi importar o projeto que acabamos de criar no Eclipse, conforme tela abaixo:
Após selecionar a opção de importar um projeto Maven já existente(menu File/Import do Eclipse, indique a pasta onde está o seu projeto criado.
Veja que neste exemplo usamos o conceito de Templates de Projeto Maven para agilizar o processo.
O diretório src/main/java contém o código fonte do projeto. A pasta src/test/java contém o código fonte necessário para os testes. O Arquivo pom.xml define o modelo do projeto assim como as suas particularidades, ou simplesmente, POM.
O POM
O arquivo pom.xml é o núcleo da configuração do projeto no Maven. Este arquivo de configuração contém a maioria das informações necessárias para construir um projeto exatamente da forma que você precisa. O POM é algo complexo e inicialmente pode até te assustar(para ser mais sincero ainda, sempre assusta aos iniciantes!) devido ao nível de complexidade que podemos configurar nele porém não é necessário conhecer todos os detalhes para que você possa usá-lo com eficiência. No nosso exemplo o POM ficou assim:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>br.com.maven3.tutorial</groupId><artifactId>projeto.exemplo</artifactId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>projeto.exemplo</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies></project>
A pergunta óbvia…O que eu realmente preciso fazer agora?
Você executou o comando Maven archetype:generate passando vários parâmetros. O prefixo archetype é o plugin que contém a meta(ou goal no inglês). Caso esteja familiarizado com o Ant, você fazer uma analogia com algo semelhante a uma task. Este goal(ou meta, fique a vontade para usar o mais apropriado) criou um projeto simples baseado em um archetype(ou template de projeto). Por enquanto, basta dizer que um plugin é uma coleção de metas com um objetivo geral comum.
Dica: Depois leia também sobre o ciclo de vida de um projeto Maven.
Construa o Projeto
mvn package
O comando abaixo irá imprimir uma série de várias ações e no final teremos a seguinte mensagem de sucesso(claro, se você fez tudo certo):
Ao contrário do primeiro comando executado(archetype:generate) você pode perceber que é uma simples palavra package. Embora isto parece uma meta(ou goal), isto é na verdade uma fase(phase). A fase é passo do ciclo de vida de construção do projeto, ou seja, parte de uma série ordenada de fases necessários. Quando uma fase é informada, o Maven irá executar cada fase na sequência até que inclua a última informada no comando( no caso mvn package). Por exemplo, para executarmos a fase compile as seguintes fases também serão executadas antes: validate, generate-sources, process-sources, generate-resources e finalmente compile.
Para testar o arquivo jar compilado e empacotado neste exemplo apenas com o seguinte comando:
java -cp target/projeto.exemplo-1.0-SNAPSHOT.jar br.com.maven3.tutorial.App
A saída deve ser:
Hello World!
Gerando o Site
mvn site
Esta fase gera um site baseado na informação contida no pom.xml. Você pode olhar esta documentação gerada em target/site.
Finalizando…
Espero que este resumo de 5 minutos venha despertar o interesse no uso do Maven. Isto é bem simples e não tem o caráter de ser sua referência para seguir em frente. Descubra o que é possível criar via Maven e depois comente aqui os resultados. Pesquise mais neste blog sobre o assunto ou vá até as referências do próprio Maven.
Demorei um pouco mais de 5 minutos para escrever mas com certeza fará em menos de 5 minutos!
Boa Sorte.
Eu criei um projeto igual ao seu, mas qdo eu vou criar o site, eu não consigo obter nenhuma arquivo .html. Para mim é gerado apenas algumas imagens na pasta target/site. Vc conseguiu gerar o site?
ResponderExcluirEu realmente percebi o mesmo problema após ter executado o comando mvn site. Até então não tinha percebido que apenas gerava alguns arquivos porém faltou todo o restante da estrutura necessária.
ResponderExcluirApós pesquisar sobre o problema encontrei o seguinte link: http://maven.apache.org/plugins/maven-site-plugin-3.0-beta-3/maven-3.html
Nesta página explica que ocorreram mudanças no uso do plugin maven-site-plugin na versão 3 do Maven e que a forma como funcionava até a versão 2 não funcionaria mais então segue a dica para que este comando funcione na versão 3.0.3:
Adicione ou complemente a parte do plugin conforme trecho abaixo e irá funcionar:
<build>
<plugins>
<!-- outros plugins aqui -->
<<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0-beta-3</version>
<</plugin>
</plugins>
</build>