gpt4 book ai didi

java - "pom"类型依赖与范围 "import"和没有 "import"有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 11:27:57 26 4
gpt4 key购买 nike

从 Maven 2.0.9 开始有可能包含

<type>pom</type>
<scope>import</scope>

<dependencyManagement>部分。

据我了解,它将被此 pom 中包含的依赖项“替换”,就好像它们最初是在此处定义的一样。

上面的解决方案和没有import的简单依赖这个pom有什么区别?范围(我看到后者被称为“依赖分组”)?唯一的区别是这种“分组”的依赖关系在解决依赖关系优先级时具有较低的优先级吗?

最佳答案

您只能导入托管依赖项。这意味着您只能将其他 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>
...

然后发生的是 other-pom-artifact-iddependencyManagement 部分中定义的所有依赖项都包含在您的 POM 的 dependencyManagement部分。然后,您可以在 POM(及其所有子 POM)的 dependency 部分中引用这些依赖项,而无需包含 version 等。

但是,如果在您的 POM 中,您只需定义对 other-pom-artifact-id 的正常依赖项,那么 dependency 部分中的所有 dependenciesother-pom-artifact-id 被传递地包含在您的项目中 - 但是在 other-pom-artifact-id 的 dependencyManagement 部分中定义的依赖项 根本不包括在内。

所以基本上两种不同的机制用于导入/包含两种不同类型的依赖项(托管依赖项和正常依赖项)。

maven 网站上有一个很好的页面,可以比我解释得更好,Dependency Management in Maven它还包含有关 importing dependencies 的特定信息.

关于java - "pom"类型依赖与范围 "import"和没有 "import"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com