0Pricing
Java Academy · Aula

Estrutura de projetos Maven

POM, ciclo de vida e dependências.

Estrutura de projetos Maven é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.

Estrutura de projeto do Maven

Maven é uma ferramenta de compilação e gerenciamento de dependências baseada em um único princípio: convenção em vez de configuração. Siga sua estrutura padrão e a maioria das coisas funcionará com quase nenhuma configuração. Esta lição aborda a estrutura, o POM e o gerenciamento de dependências.

A estrutura padrão de diretórios

O Maven espera uma estrutura fixa:

  • src/main/java — código-fonte de produção.
  • src/main/resources — recursos de produção.
  • src/test/java — código-fonte de testes.
  • target/ — saída da compilação (gerada).

O POM

O núcleo de um projeto Maven é o pom.xml — o Modelo de objeto do projeto. Ele declara coordenadas, dependências, plug-ins e configurações de compilação em XML.

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>
</project>

Coordenadas: GAV

Cada artefato é identificado por groupId, artifactId e version (GAV). Essas coordenadas dão um nome exclusivo ao seu projeto e a cada dependência adicionada.

Declarando dependências

As dependências são listadas dentro de <dependencies>. O Maven as baixa (junto com suas dependências transitivas) de repositórios como o Maven Central para um cache local.

<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

Escopos de dependência

O escopo controla quando uma dependência está disponível no caminho de classes:

  • compile — em todos os contextos (padrão).
  • provided — somente na compilação; fornecida em tempo de execução pelo contêiner.
  • runtime — em tempo de execução e nos testes, mas não na compilação.
  • test — somente para compilação e execução de testes.

Dependências transitivas

Se A depende de B e B depende de C, o Maven fornece C automaticamente — isso é a transitividade. Quando há conflito entre versões, o Maven as resolve pela definição mais próxima na árvore de dependências.

O ciclo de vida da compilação

O Maven define um ciclo de vida ordenado de fases. O ciclo de vida padrão inclui, nesta ordem: validate, compile, test, package, verify, install, deploy. Executar uma fase também executa todas as fases anteriores.

Comandos comuns

  • mvn compile — compilar as fontes principais.
  • mvn test — executar testes unitários.
  • mvn package — criar o JAR/WAR em target/.
  • mvn install — copiar o artefato para o seu repositório local, para uso por outros projetos.

O repositório local

Os artefatos baixados são armazenados em cache em ~/.m2/repository. As compilações seguintes reutilizam o cache em vez de baixar tudo novamente. mvn install coloca seu próprio artefato nesse local para que projetos irmãos possam depender dele.

Projetos com vários módulos

Um POM pai com <packaging>pom</packaging> pode listar módulos filhos em <modules>. O Maven os compila na ordem das dependências, permitindo que um sistema grande compartilhe configurações e versões a partir de um único lugar.

Verificação rápida

Teste sua compreensão da estrutura do Maven.

Recapitulação

Você aprendeu os fundamentos do Maven:

  • Convenção em vez de configuração com a estrutura padrão src/main/java.
  • O POM declara coordenadas GAV, dependências e plug-ins.
  • Os escopos (compile, provided, runtime, test) controlam a visibilidade no caminho de classes.
  • As dependências são transitivas; os conflitos são resolvidos pela definição mais próxima.
  • O ciclo de vida ordenado faz com que uma fase execute todas as fases anteriores.

Perguntas Frequentes

A aula “Estrutura de projetos Maven” é grátis?

Sim — o texto completo de “Estrutura de projetos Maven” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.

O que vou aprender em “Estrutura de projetos Maven”?

POM, ciclo de vida e dependências. Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Java Academy?

Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Estrutura de projetos Maven”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Java Academy?

Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Estrutura de projetos Maven
  2. Plugins e objetivos do Maven
  3. Fundamentos do Gradle
  4. Escolhendo uma ferramenta de compilação
← Voltar para Java Academy