当我使用 Mavenversions:display-dependency-updates
检查依赖项更新时,我得到两部分结果。
第一个:
Dependency Management 中的以下依赖项具有较新的版本:
第二:
Dependencies 中的以下依赖项具有较新的版本:
这两者有什么区别?
当我使用 Mavenversions:display-dependency-updates
检查依赖项更新时,我得到两部分结果。
第一个:
Dependency Management 中的以下依赖项具有较新的版本:
第二:
Dependencies 中的以下依赖项具有较新的版本:
这两者有什么区别?
POM的Dependency部分定义了项目所依赖的工件(jar、zip 等)。即编译、运行等所需的工件。
POM的依赖管理部分用于管理依赖信息。
因此,例如,在下面的 pom 中,JUnit 依赖项完全在dependencyManagement
POM 的部分中用version=4.11
和定义scope = test
。
在该dependency
部分中,您只需使用groupId
and定义 JUnit 依赖项,maven 会自动从该部分中artifactId
获取版本和范围。dependencyManagement
<?xml version="1.0" encoding="utf-8"?>
<project>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependencies>
</project>
通常您会dependencyManagement
在父 POM 中定义该部分,您可以在其中定义所有依赖项的版本和范围。然后在子模块中,您只需要使用groupId
and定义依赖项artifactId
。这使您可以集中管理版本,这意味着您只需在一个地方更新它们。
所有这些都在 Maven 文档中得到了更好的解释: https ://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
Versions Maven 插件只是列出了在每个部分中找到的版本,因为在该部分dependencies
中可以覆盖version
在该部分中定义的版本dependencyManagement
。