只能导入托管依赖项。这意味着您只能将其他 POM 导入到项目 POM 的部分。即dependencyManagement
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>other.pom.group.id</groupId>
<artifactId>other-pom-artifact-id</artifactId>
<version>SNAPSHOT</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
...
然后发生的事情是,在 部分定义的所有依赖项都包含在 POM 的部分中。然后,您可以在POM(及其所有子POM)的部分中引用这些依赖项,而不必包含等。dependencyManagement
other-pom-artifact-id
dependencyManagement
dependency
version
但是,如果在POM中,您只是简单地定义了一个正常的依赖项,那么该部分的所有内容都将传递地包含在您的项目中 - 但是,在 部分中定义的依赖项根本不包括在内。other-pom-artifact-id
dependencies
dependency
other-pom-artifact-id
dependencyManagement
other-pom-artifact-id
因此,基本上,两种不同的机制用于导入/包含两种不同类型的依赖项(托管依赖项和普通依赖项)。
Maven网站上有一个很好的页面,它可以比我更好地解释这一点,Maven中的依赖关系管理,它还包含有关导入依赖关系的特定信息。