05‐Maven - JuhMaran/Java-with-Spring-Boot GitHub Wiki
Quando você cria um projeto no [Spring Initializr](https://start.spring.io/), ele gera um projeto usando o Maven. Mas o que exatamente é o Maven?
Maven é uma ferramenta de gerenciamento de projetos para Java. Ele ajuda a automatizar o processo de compilação, gerenciamento de dependências e execução de projetos. Sem o Maven, você precisaria baixar manualmente todas as bibliotecas necessárias para o seu projeto (como as do Spring e Hibernate) e adicioná-las ao caminho de compilação. Isso daria muito trabalho!
Com o Maven, você apenas informa quais bibliotecas precisa e ele as baixa automaticamente para você, garantindo que todas estejam na versão correta. Pense no Maven como um "assistente de compras": você faz uma lista de compras (o arquivo pom.xml), e ele busca tudo para você na internet.
- O Maven tem um Repositório Central na internet, onde estão armazenadas milhares de bibliotecas Java.
- Quando você precisa de uma biblioteca (como
spring-boot-starter-web), basta adicioná-la aopom.xml. - O Maven verifica se já tem essa biblioteca armazenada no seu computador (no Repositório Local).
- Se não tiver, ele faz o download automaticamente do Repositório Central e armazena localmente para uso futuro.
Dessa forma, você não precisa baixar e configurar nada manualmente.
O Maven segue uma estrutura de diretórios padronizada. Isso facilita para qualquer desenvolvedor entender a organização do código:
meu-projeto/
│-- pom.xml # Arquivo de configuração do Maven
│-- src/
│-- main/
│ │-- java/ # Código-fonte Java
│ │-- resources/ # Arquivos de configuração
│ │-- webapp/ # Arquivos de interface (JSP, CSS, etc.)
│-- test/
│-- java/ # Testes automatizados
- Facilita a compreensão do projeto por novos desenvolvedores.
- É compatível com qualquer IDE moderna (IntelliJ, Eclipse, VS Code).
- Permite compartilhar projetos facilmente entre diferentes ambientes.
O pom.xml (Project Object Model) é o arquivo de configuração principal do Maven. Nele, você define:
- Nome do projeto e versão.
- Dependências (bibliotecas que o projeto usa, como Spring e Hibernate).
- Plugins (tarefas extras, como execução de testes e geração de relatórios).
<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.exemplo</groupId>
<artifactId>meu-projeto</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
</project>Cada dependência no pom.xml é identificada por:
-
groupId: Nome da organização ou grupo do projeto (ex.:
org.springframework.boot). -
artifactId: Nome do módulo/biblioteca (ex.:
spring-boot-starter-web). -
version: Versão específica da biblioteca (ex.:
3.0.0).
Você pode encontrar essas coordenadas no site oficial da biblioteca ou no [Repositório Central do Maven](https://mvnrepository.com/).
- Gerenciamento de dependências: Baixa e gerencia bibliotecas automaticamente.
- Padroniza a estrutura do projeto: Facilita a compreensão do código.
- Automatiza a compilação e execução: Basta um comando para rodar seu projeto.
- Portabilidade: Projetos podem ser abertos em qualquer IDE sem ajustes manuais.
O Maven simplifica o desenvolvimento de projetos Java, eliminando o trabalho manual de configuração e gerenciamento de dependências. Ele permite que você se concentre na programação e deixe o Maven cuidar do resto!