依赖关系与依赖关系管理?

时间:2016-04-21 10:22:28

标签: maven

我已经完成了differences between dependencymanagement and dependencies in maven,但我还不清楚何时使用 父pom中的dependencies标记以及何时使用dependenciesManagement代码?

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

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

引用它们

这是对的吗?

1 个答案:

答案 0 :(得分:2)

<dependency>内声明<dependencyManagement>不会将指定工件设置为任何项目(父项或子项)的依赖项。它只是声明:如果你想将它用作依赖关系,那么你可以将它用于这些设置(versionscope,...),而不必再次指定设置,并且再次,和。但是,你可以覆盖管理&#34;设置在&#34;真实&#34; <dependency>随时随地。

另见POM Reference, Dependency Management

父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>
    
  3. 你的第三段是正确的..