最近我在一个项目中做了一些改进,这是我的发现。Pom 文件中的许多依赖项没有指定版本,但是它们已经得到了解决。该项目由1个根模块和2个子模块组成。使用了聚合器模式,这意味着根本没有 DependencyManagement 部分。上层项目只是简单地聚合了2个模块,这就是它所做的全部工作。子项目并不把它当作父项目来引用。他们有不同的父母。我不能理解的是,无论是子项目本身还是它们的父项目(事实上,它也没有 DepencyManagement)都没有为某些依赖项指定版本。例如:
<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 是否使用某种默认策略来处理版本控制?默认策略是什么?