最近、私は少し前に開発されたプロジェクトの改善に取り組んでおり、これが私が見つけたものです。pom ファイルの多くの依存関係は、バージョンが指定されていませんが、解決されています。プロジェクトは、1 つのルート モジュールと 2 つのサブモジュールで構成されます。Aggregator パターンが使用されます。つまり、dependencyManagement セクションがまったくありません。upper-project は単純に 2 つのモジュールを集約するだけです。サブプロジェクトはそれを親として参照しません。彼らは別の親を持っています。私が把握できないのは、サブプロジェクト自体もその親も (実際のところ、依存関係管理もありません) 依存関係の一部のバージョンを指定していないことです。例えば:
<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>
誰かがこれを理解するのを手伝ってくれますか? Maven は、いくつかのデフォルト戦略でバージョン管理を処理していますか? そのデフォルトの戦略は何ですか?