Maven – Instalando e configurando em seus projetos.

Maven – Instalando e configurando em seus projetos.

O maven é um projeto da Apache muito importante para gerenciamento do ciclo de build e baixar as dependências do seu projeto Java, gerenciando as bibliotecas necessárias e fazendo o download de todas através de repositórios remotos, basta informarmos quais bibliotecas usaremos nos nossos projetos através do arquivo pom.xml (project object model).

O maven ao baixar as dependências, cria um diretório local na máquina, chamado .m2, geralmente na pasta de usuário, onde se concentrarão todas as libs que voce informou no seu projeto.

Criar um projeto maven também o deixa independente de qualquer IDE, pois através do seu padrão é possível importar um projeto maven no eclipse, netbeans, intelliJ, etc.

Também controla as fases de build desde a compilação e criação dos diretórios até gerar um arquivo .jar (ou .war) para “deployar” em um servidor de aplicações.

Nesse artigo iremos ver a instalação e configuração do maven, e das variáveis de sistema necessários para o seu funcionamento.

Onde Baixar o Maven?

Devemos fazer o download do arquivo .zip do maven no site oficial do mesmo, segue o link abaixo:

https://maven.apache.org/download.html

A versão que se encontra no momento deste artigo é a 3.5.0, e é necessário que você já tenha o Java JDK versão 7 ou superior instalado em sua máquina para executar o maven a partir da sua versão 3.3 pra cima.

Obs: Caso você ainda não tenha o Java JDK instalado, veja o nosso artigo sobre a instalação do mesmo no link abaixo:

Link: Como Instalar o Java [JDK] para seu ambiente de desenvolvimento

Para baixar o maven você vai escolher o arquivo Binary zip archive, para ambiente windows que vai ser o nosso caso, conforme imagem a seguir:

Realizando a Instalação e Configuração do Maven

Após fazer o download do arquivo, a instalação vai se tratar apenas de descompactar o conteúdo em uma pasta de sua escolha e fazer as configurações das variáveis de sistema para o reconhecimento do maven.

Obs: O único requisito é você já ter feito a instalação do Java JDK 7 ou superior, como comentado anteriormente. Já instalou?

No nosso exemplo, criamos uma pasta dentro de [C:] chamada ambiente_desenvolvimento, e iremos adotar essa pasta como padrão em todos os nossos artigos daqui em diante, caso você se sinta a vontade poderá seguir da mesma forma, apenas para seguirmos uma organização daqui em diante.

Nossa pasta fica então: C:\ambiente_desenvolvimento

Dentro dessa nossa pasta colocaremos o arquivo que baixamos do maven: apache-maven-3.5.0-bin.zip e descompactamos.

É criado uma outra pasta, apache-maven-3.5.0, com todos os arquivos do maven, ficando assim a pasta de instalação:

C:\ambiente_desenvolvimento\apache-maven-3.5.0

Muito simples, não?

Configurando as variáveis do sistema

Para finalizar devemos configurar 3 variáveis de sistema:

M2_HOME: pasta do maven [Exemplo: C:\ambiente_desenvolvimento\apache-maven-3.5.0]M2: %M2_HOME%\bin
Path: ;%M2%

Testando e verificando se funcionou

Para verificar se funcionou as configurações, podemos executar o seguinte comando no prompt:

Comando: mvn -version

Deve retornar como resposta a versão atual do maven e algumas configurações do java.

Criando um projeto pela linha de comando:

mvn archetype:generate
-DartifactId=produtos (nome projeto)
-DgroupId=br.com.nome.maven (nome pacote)
-DinteractiveMode=false (nao faz mais perguntas)
-DarchetypeArtifactId=maven-archetype-quickstart (usa um projeto de exemplo para a criação)

Compilar o projeto:

mvn compile (tem que estar no diretório do projeto pra executar)

Testar o projeto:

mvn test (baixará as bibliotecas de teste na 1ª vez)

Modelo do projeto com as dependências:

Arquivo pom.xml

Limpar o projeto:

mvn clean

  • Limpa o diretório target.
  • Deixa apenas o fonte (src).

Plugins para maven:

Exemplos:

mvn surefire-report:report

  • surefire-report: nome do plugin.
  • report: nome do objetivo (Goal).
  • Esse é apenas um exemplo de plugin para relatório de testes, pesquise maven plugin no google e achará vários tipos para baixar.

mvn pmd:pmd

  • Relatório para verificação de bugs.
  • cria um arquivo pmd.html em target>site

mvn jacoco:help / mvn jacoco:prepare-agent / mvn jacoco:report

  • Plugin para cobertura de testes.
  • Gera relatório com as porcentagens de cobertura de testes.
  • cria um arquivo index.html em target>site>jacoco

Executar um comando maven pelo Eclipse:

Em Run As > Maven build… (com reticências).
Em name: dar um nome a configuração que está criando. (Ex: maven verify).
Em Goals: Colocar uma fase do maven a ser chamada (verify, por exemplo).

Empacotar o projeto em .jar

mvn package (da um clean antes de gerar o package)

Repositórios do Maven:

Repositório Central:

https://mvnrepository.com/

http://repo.maven.apache.org/maven2/

Repositório Local:

Pasta .m2 (poderá estar oculta) e fica no diretório de usuário.

Flag offline -o:

Exemplo:

mvn -o compile (ou qualquer comando)

  • -o: offline
  • Não verifica na internet se tem atualizações de alguma dependência para baixar (caso não se especifique a versão de alguma dependência)

Fases do processo de Build do Maven:

Ciclo de vida do Build no Maven:

  • Validate
  • Compile
  • Test
  • Package
  • Verify
  • Install
  • Deploy

Referência:
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Executar sem rodar os testes:

mvn -DskipTests=true deploy

Escopo das Dependências:

compile: (default) Será usada para compilar, e passa a dependência para frente, ou seja tudo que é compile vira dependência do projeto. Compilar e rodar.
test: é usado apenas para testes, não vira dependência ao compilar.
provided: vai compilar no projeto em desenvolvimento, mas em produção já estará provido para nós. (Pra compilar eu quero, pra rodar eu não quero, alguém fornece pra mim).
runtime: (só pra rodar em tempo de execução, pra compilar não precisa).

Sobre Haylson Martins

Me chamo Haylson Martins, formado em Sistemas de Informação, trabalho com T.I de forma geral desde 2002 com suporte depois na área de negócio e treinamentos, e com Desenvolvimento para Sistemas Web desde 2010 com linguagem principal o Java. Amo tecnologia, amo aprender coisas novas, gosto de ensinar embora não seja essa a minha pretensão. Por meio desse blog pretendo reforçar o que ando aprendendo e estudando de outras linguagens e tecnologias, e principalmente como uma espécie de bloco de notas para consultas posteriores e quem sabe também ajude outras pessoas que estudam e têm as mesmas dúvidas que já tive ou que ainda tenho. Vamos começar?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *