dependência maven sem versão

Recentemente, estive trabalhando em algumas melhorias em um projeto desenvolvido há algum tempo, e aqui está o que encontrei. Muitas dependências nos arquivos pom ficam sem as versões especificadas e, no entanto, são resolvidas. O projeto consiste em 1 módulo raiz e 2 submódulos. O padrão Aggregator é usado, o que significa que não há nenhuma seção dependencyManagement. O projeto superior simplesmente agrega 2 módulos e é tudo o que faz. Os subprojetos não se referem a ele como pai. Eles têm um pai diferente. O que não consigo entender é que nem os subprojetos nem seus pais (na verdade, também não tem dependencyManagement) especificam versões para algumas das dependências. Por exemplo:

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>imap</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jul-to-slf4j</artifactId>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>

Alguém pode me ajudar a descobrir isso? O maven manipula o versionamento com alguma estratégia padrão? Qual é a estratégia padrão?

questionAnswers(2)

yourAnswerToTheQuestion