来自父pom的maven依赖关系管理覆盖$ {project.version}

时间:2015-06-09 12:43:24

标签: java maven

我有一个像这样的依赖关系管理的父pom:

<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.group.id</groupId>
        <artifactId>art1</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>com.group.id</groupId>
        <artifactId>art1</artifactId>
        <version>1.0</version>
      </dependency>
</dependencyManagement>

工件art1和art2是来自同一模块的子模块,它们继承自依赖关系管理所在的父pom。

art1的依赖关系如下:

<dependency>
  <groupId>com.group.id</groupId>
  <artifactId>art2</artifactId>
  <version>${project.version}</version>
</dependency>

现在我认为如果art1的项目版本为0.5,art1依赖项中的art2版本将为0.5 但似乎dependencyManagement覆盖了$ {project.version}

你能告诉我我是不对吗?

1 个答案:

答案 0 :(得分:2)

是的,你是对的。来自父pom的依赖关系管理中的指定版本将具有对传递依赖性的“优先级”。 这是依赖关系管理的目的之一:用户可以在某个地方以某种方式“强制”依赖关系的版本。