依赖关系与依赖关系管理

  • 本文关键字:依赖 关系 管理 maven
  • 更新时间 :
  • 英文 :


我已经在 maven 中经历了依赖管理和依赖之间的差异,但我仍然不清楚何时使用只需在父 POM 中dependencies标签以及何时使用dependenciesManagement标签?

我的理解是,当我的所有子模块都需要使用相同的依赖项版本时,我们应该在 Dependencies 标签(不带dependencyManagement标签)下声明依赖关系

但另一方面,如果某些子项目需要使用不同的版本,那么我们应该在 Dependencies 标签下声明依赖项(这将在 dependencyManagement 标签下)。 然后子模块可以使用覆盖的版本引用它们

这是对的吗?

<dependencyManagement> 中声明<dependency>不会将指定的工件设置为任何项目(父项目或子项目)的依赖项。它只是声明:如果您想将其用作依赖项,那么您可以将其与这些设置(versionscope、...)一起使用,而无需一次又一次地指定设置,然后......但是,您可以随时覆盖"真实"<dependency>中的"管理"设置。

另请参阅 POM 参考、依赖关系管理。

关于您的第二段,父 POM 有两种选择:

  1. 正如您正确描述的那样:

    <dependencies>
      <dependency>
        <groupId>g-id</groupId>
        <artifactId>a-id</artifactId>
        <version>1.0.0</version>
      </dependency>
    </dependencies>
    
  2. 我会使用它来保持一致性:

    <dependencyManagement>
      <dependencies>
          <dependency>
            <groupId>g-id</groupId>
            <artifactId>a-id</artifactId>
            <version>1.0.0</version>
          </dependency>
       </dependencies>
     </dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>g-id</groupId>
        <artifactId>a-id</artifactId>
      </dependency>
    </dependencies>
    

你的第三段是正确的。

最新更新