CodeGym /Blogue Java /Random-PT /Parte 4. O básico do Maven
John Squirrels
Nível 41
San Francisco

Parte 4. O básico do Maven

Publicado no grupo Random-PT
Este material faz parte da série "Introdução ao Desenvolvimento Corporativo". Artigos anteriores: Parte 4. O básico do Maven - 1Maven é uma ferramenta para gerenciar e construir projetos — um assistente útil do programador Java. Facilita a vida dos desenvolvedores em todas as etapas do trabalho: desde a criação da estrutura do projeto e conexão das bibliotecas necessárias até a implantação do produto no servidor. Você terá que usar o Maven ao trabalhar com qualquer framework. Então, hoje vamos dar uma olhada em suas principais funções e ver como usá-las.

Instalação passo a passo do Maven

  1. Primeiro, precisamos instalar o Maven. Baixe-o neste link .

  2. Em seguida, descompacte o arquivo baixado e defina a variável de ambiente M2_HOME para o local do arquivo descompactado. Por exemplo, C:\\Arquivos de Programas\\maven\\

  3. Para garantir que tudo esteja instalado, execute o seguinte na linha de comando:

    mvn -version

  4. Se as informações da versão para Maven, Java etc. forem exibidas, tudo estará pronto para funcionar.

  5. Agora abra o IntelliJ IDEA e crie um novo projeto. Na primeira janela, selecione Maven:

    Parte 4. O básico do Maven - 2
  6. Clique em "Next" e preencha a janela que aparece:

    Parte 4. O básico do Maven - 3
  7. Então, como de costume, crie um projeto onde quiser.

    Após a criação do projeto, observe sua estrutura:

    Parte 4. O básico do Maven - 4
Esta é a estrutura padrão de um projeto Maven :
  • a pasta src/main/java contém as classes Java
  • a pasta src/main/resources contém os recursos utilizados pela aplicação (páginas HTML, imagens, folhas de estilo, etc.)
  • a pasta src/test é para testes
Preste atenção também no arquivo chamado pom.xml . Este é o arquivo principal para gerenciar o Maven . A descrição completa do projeto está contida aqui. Não há muitas informações no momento, mas vamos adicioná-las agora.

Gerenciando dependências no Maven

Você pode ter encontrado a frase "gerenciador de dependências". Maven sabe como gerenciar dependências. Graças ao Maven, você não precisa gastar muito tempo procurando na Internet por uma biblioteca necessária, baixando-a e conectando-a ao seu projeto. Em vez disso, basta adicionar a biblioteca necessária à lista de dependências no Maven.

As dependências são especificadas no nó de dependências do arquivo pom.xml

Digamos que você precise da biblioteca Apache Commons IO em seu projeto para simplificar o trabalho com arquivos. Para adicionar uma biblioteca, escrevemos cinco linhas em pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Agora seu arquivo pom.xml deve ficar assim:

  <?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Depois disso, permita que o IntelliJ IDEA importe a dependência (uma caixa de diálogo deve aparecer no canto inferior direito). Agora a biblioteca está pronta para uso:

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Todas as dependências subsequentes também devem ser escritas dentro da <dependencies>tag. Você pode estar se perguntando como descobrir as informações sobre a biblioteca que precisa indicar dentro da <dependency>tag. Isso é fácil. Três parâmetros sempre precisam ser definidos: "groupId", "artifactId" e "version". Existem duas maneiras de determinar esses parâmetros:
  1. No site da biblioteca. Se precisarmos da biblioteca Apache Commons IO, vamos ao site oficial e selecionamos a guia "Informações de dependência". Todas as informações necessárias estão aqui — você pode simplesmente copiá-las e adicioná-las ao <dependencies>nó.

  2. Em um repositório Maven . Digite "apache commons io" na barra de pesquisa e você verá todas as versões disponíveis da biblioteca. Depois de selecionar o correto, basta copiar o seguinte:

    
    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>
    

    e adicione-o ao seu pom.xml.

Tipos de repositórios Maven

Vale a pena mencionar os repositórios Maven novamente, porque na verdade temos dois deles: um repositório remoto (central) e um repositório local (no seu computador). Todas as bibliotecas que você adiciona aos seus projetos são salvas no repositório local. Quando o Maven adiciona uma dependência necessária a um projeto, ele primeiro verifica se a biblioteca já existe no repositório local. Ele acessa o repositório remoto apenas se não encontrar a biblioteca localmente. Como você pode ver, você pode usar o Maven para adicionar dependências, mas isso não é tudo que ele pode fazer.

Construindo um projeto Java usando Maven

Esta capacidade pode parecer inútil para um iniciante. Por que precisamos disso se temos um IDE? Deixe-me explicar. Primeiro, o servidor onde você deve construir seu aplicativo pode não ter um ambiente de desenvolvimento nem uma interface gráfica. Em segundo lugar, em grandes projetos, o Maven faz um trabalho melhor na construção do projeto. Portanto, sem mais delongas, consideraremos o processo de construção de um aplicativo usando o Maven.

Fases

O processo de construção de um aplicativo é conhecido como o ciclo de vida de um projeto Maven e consiste em fases. Você pode visualizá-los no IDEA clicando em Maven > exemplo > Ciclo de vida no canto superior direito: Parte 4. O básico do Maven - 5Como você pode ver, existem 9 fases:
  1. clean — remove todos os arquivos compilados do diretório de destino (o local onde os artefatos finalizados são salvos)
  2. validar — verifica se todas as informações necessárias para construir o projeto estão presentes
  3. compile — compila arquivos de código-fonte
  4. test — inicia os testes
  5. pacote — empacota arquivos compilados (em um arquivo JAR, WAR, etc.)
  6. verificar — verifica se o arquivo compactado está pronto
  7. install — coloca o pacote no repositório local. Agora pode ser usado por outros projetos como uma biblioteca externa
  8. site — cria a documentação do projeto
  9. deploy — copia o arquivo construído para o repositório remoto
Todas as fases são executadas sequencialmente: por exemplo, a quarta fase não pode ser iniciada até que as fases 1-3 sejam concluídas. Existem duas maneiras de iniciar uma fase:
  • através da linha de comando:

    pacote mvn

    Parte 4. O básico do Maven - 6
  • usando o IntelliJ IDEA:

    Parte 4. O básico do Maven - 7

    Antes do início da fase de pacote, as fases de validação, compilação e teste são executadas. A fase limpa é uma exceção. É uma boa ideia executar esta fase antes de cada construção do projeto. Você pode listar várias fases, separando-as com espaços:

    mvn pacote limpo.

Além disso, cada fase tem pré e pós-fases: por exemplo, pré-implantação, pós-implantação, pré-limpeza, pós-limpeza etc., mas raramente são usadas. Além disso, cada fase tem objetivos. As metas padrão são definidas por padrão. Metas adicionais são adicionadas pelos plug-ins do Maven. Às vezes, durante uma fase, você pode precisar executar funções adicionais. Existem plugins Maven para isso. Uma lista de plug-ins oficiais pode ser encontrada no site do Maven . Mas você deve saber que existem muitos plugins personalizados que podem ser encontrados em sites de terceiros. E, claro, se surgir alguma necessidade exótica, você sempre pode escrever um plug-in personalizado .

Plugins

Para adicionar um plug-in Maven ao projeto, precisamos adicionar sua descrição ao arquivo pom.xml, usando as tags <build>e <plugins>, semelhante à forma como adicionamos dependências. Por exemplo, suponha que precisamos de um plug-in para verificar se estamos usando a versão mais recente de todas as nossas bibliotecas externas. Depois de pesquisar um pouco na Internet, você pode encontrar este plug-in e instruções sobre como usá-lo. Vamos definir o groupId, artefatoId e versão. Indicaremos quais objetivos o plugin deve cumprir e em que fase. Em nosso caso, a verificação de dependência no pom.xml atual é definida para ocorrer durante a fase de validação. Agora nosso arquivo pom.xml está assim:

<?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Poderíamos continuar trabalhando em nosso projeto. Mas vamos tentar mudar a versão do Apache Commons IO para 2.0 e construir o projeto. Nós conseguiremos

[ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
Aqui temos um erro de compilação gerado pelo plugin. A mensagem de erro informa que estamos usando a versão 2.0 quando a versão 2.6 está disponível. Basicamente, o Maven é uma ferramenta muito útil. Talvez pareça difícil de usar no começo, mas pratique! Crie seus projetos usando o Maven, e depois de um tempo você ficará muito satisfeito com o resultado final. Este artigo omitiu deliberadamente muitos detalhes sobre o Maven — focamos no mais essencial. Mas não há limite para melhorias: você pode ler mais sobre o Maven em seu site oficial . Parte 5. Servlets e a API Java Servlet. Escrevendo um aplicativo Web simples Parte 6. Contêineres de servlet Parte 7. Apresentando o padrão MVC (Model-View-Controller)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION