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 emtarget/.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
- Estrutura de projetos Maven
- Plugins e objetivos do Maven
- Fundamentos do Gradle
- Escolhendo uma ferramenta de compilação