Maven é um apoiador na construção de projetos, que facilita, e muito, a gestão de dependências, a automatização das construções, o gerenciamento de configuração e, se a equipe tiver o cuidado de escrever os JavaDocs, dá pra extrair uma documentaçãozinha!!!
Trabalhando com um conceito de modelo de objeto do projeto (POM) em que as dependências e parâmetros de construção são configurados em um arquivo XML do projeto, nos trouxe uma simplificação enorme em relação à responsabilidade de gerenciar as dependências inclusive as dependências transitivas, a remontagem dos projetos nas estações de desenvolvimento e a liberdade de ter o ambiente de desenvolvimento da forma que mais esteja confortável.
Com Maven também temos o poder de iniciar projetos WEB, ejb, ear, Android e muitos outros a partir de templates predefinidos ou até mesmo criar nossos próprios templates!
Vamos ver um pouco da ferramenta em ação?
Instalação básica do Maven
Primeiro passo para usarmos a ferramenta e instalar a dita cuja... Vamos trabalhar aqui com a versão 3.0.4, publicada em Janeiro de 2012.
Suponho que já tenha o JDK pelo menos 1.5 instalado em seu computador, então comece baixando o pacote do Maven em maven.apache.org. Escolha o pacote de acordo com o descompactador que achar mais conveniente em seu sistema operacional, zip ou tar.
Na hora de descompactar, se estiver no Windows, sugiro descompactar no caminho c:\javatools\apache\maven-3.0.4, já em sistemas com base unix, sugiro em /usr/local/apache/maven-3.0.4.
Após descompactar, crie a variável de ambiente chamada M2_HOME apontando para o caminho em que foi descompactado a ferramenta e em seguida e insira a variável no PATH do sistema.
Abaixo segue como ficou no Windows 7 (64 bits):
Criação da variável de ambiente M2_HOME |
Windows: %M2_HOME%\bin
Unix Based: $M2_HOME\bin
Inclusão do M2_HOME no PATH do SO |
Resultado do comando "mvn -version" |
Criando um projeto java simples utilizando Maven
Bem, estamos com Maven instalado e pronto para uso. Vamos criar um projeto bem básico explorando uma facilitação da ferramenta que citei acima que é o template de projetos, chamados oficialmente de arquétipo (archetype).
Na demostração, vamos utilizar um dos arquétipos mais simples, o maven-archetype-quickstart e o plugin de criação de projetos (archetype:generate). Criarei um projeto chamado exemplo-jar-simples com a versão 1.0.0 e pacote com.blogger.exemplos. Não é necessário criar a pasta do projeto pois o Maven criará um pasta com o valor do parâmetro .
Observe o comando a seguir em que são aplicados os parâmetros ao comando.
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart
-DartifactId=exemplo-jar-simples -DgroupId=com.blogger.exemplos -Dversion=1.0.0
Como executamos indicando que será em modo iterativo, sem o parâmetro DinteractiveMode, o Maven solicitará a confirmação dos parâmetros informados, conforme a tela a baixo. Responda "Y" e deixe-o proseguir.
Solicitação de confirmação dos parâmetros |
Vamos dar uma rápida olhada no arquivo pom.xml do projeto que está no diretório base do projeto, junto ao diretório src ...
<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>com.blogger.exemplos</groupId>
<artifactId>exemplo-jar-simples</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>exemplo-jar-simples</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>
O arquivo descreve o tipo de empacotamento do projeto no bloco <packaging>jar</packaging>, a versão no bloco <version>1.0.0</version>, o nome no bloco <artifactId>exemplo-jar-simples</artifactId>, o pacote no bloco <groupId>com.blogger.exemplos</groupId> e as dependências no bloco <dependencies>...</dependencies>, neste momento a unica dependência encontrada no projeto é o JUnit 3.8.1, que usamos para implementar nossos testes. Em outro momento vamos explorar mais e entender mais detalhes do pom.xml e assim enriquecer nossos projetos com outros blocos de configurações.
Vamos preparar nosso projeto para ser aberto na IDE Eclipse? Dentro da pasta do projeto utilizamos o comando mvn eclipse:eclipse assim o Mavem baixa as dependências, cria os arquivos da estrutura dos projetos eclipse e então podemos importa-lo na IDE e escrever nossos códigos!!
Finalmente ainda na pasta do projeto, usamos alguns comandinhos básicos:
- mvn clean => Limpa a compilação do projeto;
- mvn compile => Compila o projeto;
- mvn install => Compila, empacota e instala o projeto no repositório local;
- mvn test => Executa os testes implementados no projeto;
- mvn package [tipo de empacotamento] => empacota o projeto que em nosso caso, por ser um jar simples, devemos informar "jar:jar".
Estes comandos podem ser usados em conjunto como mvn clean install ou mvn test package jar:jar
Por enquanto estas são as informações que quero deixar. Vamos, mais a frente, entender melhor a estrutura do arquivo pom.xml, os plugins que estendem muito o poder da ferramenta, as dependências, as configurações da própria ferramenta como utilizar-la junto com ferramentas de construção automatizada como o Jenkins.
Já já apresentarei mais informações, fiquem ligados!
Caro,
ResponderExcluirGostaria se possível de ver algum post relacionado o SBT (scala build tools) e graddle. Abraços,