Apache Maven — Em resumo

Feb 17 2023
Se você é um desenvolvedor Java, suas atividades diárias enquanto trabalha em seu projeto incluem: escrever o código, compilar o código, testar o código, empacotá-lo na forma de um artefato como um jar ou arquivo war e, em seguida, implantar isso artefato para um servidor web. Existem muitas tarefas que você precisa realizar manualmente e, obviamente, você pode automatizar essas tarefas usando uma biblioteca chamada Apache Maven Neste artigo, entenderemos o que é Apache Maven e como você pode usá-lo efetivamente para criar e gerenciar seu Projetos java Primeiro, vamos entender os fundamentos do maven O que é Maven? Maven é uma ferramenta de gerenciamento de projetos desenvolvida para ajudar a gerenciar projetos desenvolvidos usando linguagens JVM como Java e Scala.

Se você é um desenvolvedor Java, suas atividades diárias enquanto trabalha em seu projeto incluem: escrever o código, compilar o código, testar o código, empacotá-lo na forma de um artefato como um jar ou arquivo war e, em seguida , implantar isso artefato para um servidor web.

Existem muitas tarefas que você precisa cuidar manualmente e, obviamente, você pode automatizar essas tarefas usando uma biblioteca chamada Apache Maven

Neste artigo, vamos entender o que é o Apache Maven e como você pode usá-lo de forma eficaz para construir e gerenciar seus projetos java.

Primeiro, vamos entender os fundamentos do maven

O que é Maven?

Maven é uma ferramenta de gerenciamento de projetos desenvolvida para ajudar a gerenciar projetos desenvolvidos usando linguagens JVM como Java e Scala. A principal tarefa das ferramentas de gerenciamento de projetos inclui,

  1. Construindo o código-fonte
  2. Testando o código-fonte
  3. Embalagem em frasco, guerra ou orelha
  4. Gerando documentos java
  5. Gerenciar dependências

Agora, vamos prosseguir e ver como instalar o Maven em nossa máquina.

  1. Abra o https://maven.apache.org/ no seu navegador
  2. Vá para a seção de download e baixe a pasta zip da versão maven mais recente e extraia-a
  3. Defina a variável de caminho do ambiente Adicione JAVA_HOME e MAVEN_HOME
  4. Adicione o caminho maven na variável de ambiente. ex: F:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin

Repositório Maven:

Maven Repository é um diretório de arquivos jar empacotados com pom.xml. O Maven procura dependências nos repositórios. Existem três tipos de repositórios maven.

  1. Repositório local
  2. Repositório central
  3. Repositório Remoto

Além disso, podemos alterar a localização do repositório local no arquivo settings.xml, que está localizado em MAVEN_HOME/conf/settings.xml Exemplo: E:\apache-maven-3.1.1\conf\settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"   
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  <!-- localRepository  
   | The path to the local repository maven will use to store artifacts.  
   |  
   | Default: ${user.home}/.m2/repository  
  <localRepository>/path/to/local/repo</localRepository>  
  -->  
</settings>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"   
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
   <localRepository>e:/mavenlocalrepository</localRepository>  
</settings>

O repositório central contém muitas bibliotecas comuns que podem ser visualizadas por este URLhttp://search.maven.org/#browse.

Repositório Remoto Maven: O repositório remoto Maven está localizado na web. Algumas das bibliotecas podem estar ausentes do repositório central, como a biblioteca JBoss etc., portanto, precisamos definir um repositório remoto no arquivo pom.xml.

Estrutura do Projeto Maven:

Agora vamos entender a estrutura do projeto Maven. Ao criar um projeto maven, você verá uma pasta chamada

  1. src — source — que é a raiz do código-fonte de nosso aplicativo e o teste de unidade do aplicativo
  2. src/main/java — que contém o código-fonte de nosso aplicativo, todo o código de produção que escrevemos em nosso aplicativo está dentro desta pasta
  3. src/main/resources — onde armazenamos todos os arquivos estáticos que usamos em nosso projeto. exemplo application.properties , arquivos XML, arquivos CSV etc.
  4. Se você estiver desenvolvendo um aplicativo da Web, todos os arquivos html e javascript estarão nesta pasta
  5. src/test/java — aqui, onde escrevemos o teste de unidade e o teste de integração para nosso aplicativo
  6. pom.xml — contém os metadados das dependências do projeto
  7. target — nesta pasta, o maven armazena todos os arquivos de classe java compilados

O POM contém os metadados do projeto e também é responsável por gerenciar as dependências para configurar plugins o que nos ajuda a automatizar muitas tarefas repetitivas, aqui está o pom.xml básico

<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/xsd/maven-4.0.0.xsd">  

  <modelVersion>4.0.0</modelVersion>  
  <groupId>com.maven.application</groupId>  
  <artifactId>my-app</artifactId>  
  <version>1</version>  
</project>

  • versão do modelo — a versão do modelo sempre será definida como 4.0.0, a menos que você a altere para outra versão do maven. Por exemplo, versões superiores acima de 3.0
  1. arquivo pom simples
  2. arquivo super pom
  3. arquivo pom eficaz

Arquivo super pom: você pode encontrar o arquivo super pom no diretório de instalação do maven, no caminho lib. E dentro do arquivo jar — maven-model-builder, podemos encontrar um pacote chamado org

Arquivo pom efetivo: O arquivo pom efetivo nada mais é do que uma combinação de arquivos pom simples e super pom. É apenas uma forma de verificar todas as informações dos arquivos pom.xml em um só lugar. Para dar uma olhada no arquivo pom efetivo, vá para o tipo de terminal maven

mvn-help: effective-pom

Maven tem dois tipos de dependências

  1. Dependência de instantâneo: uma dependência de instantâneo significa um projeto que está em desenvolvimento ativo e que é instável.
  2. Dependência de liberação: assim que o projeto é concluído, ele é liberado

Podemos controlar a visibilidade da dependência maven usando escopos de dependência. Existem 5 tipos de escopos

  1. Compile: Este é o escopo padrão para todas as dependências e as dependências marcadas com compile estão disponíveis dentro do classpath do projeto
  2. Fornecido: uma dependência cujo escopo fornecido será fornecido no tempo de execução pelo jdk ou pelo servidor da web
  3. Tempo de execução: como o nome sugere, a dependência marcada com tempo de execução está disponível apenas em tempo de execução, mas não em tempo de compilação.
  4. Teste: essas dependências só estão disponíveis no momento da escrita e execução do teste.
  5. Escopo do sistema: é semelhante ao escopo fornecido, mas a única diferença é que mencionamos explicitamente onde podemos encontrar a dependência no sistema. Em vez de JDK ou servidor web fornecer essa dependência em tempo de execução, fornecemos o caminho do sistema onde o maven pode encontrar essa dependência. Podemos fornecer o caminho usando o caminho do sistema

O ciclo de vida de compilação do Maven é dividido em 3 etapas diferentes:

  1. Padrão — como parte desta etapa, o maven executa muitas tarefas,
  2. maven lê o pom.xml e valida se temos um xml válido ou não.
  3. Em seguida, o maven irá compilar nosso código-fonte e criar os arquivos de classe e armazená-los na pasta de destino.
  4. Então, na fase de teste, como parte do teste, o maven executa o teste de unidade dentro do projeto.
  5. pacote — como parte do pacote, o maven empacota o código-fonte em um artefato de nossa escolha, como arquivos jar, war, ear ou zip
  6. teste de integração — se nosso projeto contiver algum teste de integração e for executado
  7. Verify — o maven verifica se o teste de integração, executado na fase anterior, foi bem-sucedido ou não
  8. install — o maven instalará o pacote criado no repositório local
  9. deploy — após a instalação, o maven será implantado em um repositório remoto.
  10. 2. Clean: esta etapa é responsável principalmente por limpar as classes java compiladas ou os metadados gerados. Exemplo: mvn instalação limpa

    3. Site: É responsável por gerar a documentação java que está presente dentro do nosso projeto.

    O Maven simplifica o processo de compilação de maneira muito avançada. Espero que você tenha aprendido e conseguido alguns pontos para entender sobre o Apache Maven.

    Obrigado por ler o artigo. Por favor, batam palmas, compartilhem e comentem. isso me encorajará a escrever mais artigos desse tipo. Compartilhe suas valiosas sugestões, agradeço seu feedback honesto!!!

    Pergunta de entrevista baseada em fluxo Java8 mais comum - Parte 1 A maneira mais fácil de acessar um banco de dados em JAVA Capturar várias exceções na codificação Java: Encontre o enésimo número de Fibonacci em JavaScript Sites reais que pagam de US$ 50 a US$ 100 por hora para revisar livros Threading e multiprocessamento em Python Explicado