【问题标题】:maven dependency management from parent pom overrides ${project.version}来自父 pom 的 maven 依赖管理覆盖 ${project.version}
【发布时间】:2015-06-09 12:43:24
【问题描述】:

我有一个像这样的依赖管理的父 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}

你能告诉我我是否正确吗?

【问题讨论】:

    标签: java maven


    【解决方案1】:

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

    【讨论】:

    • 你能喜欢一些关于这个目的的文档吗?那我可以接受你的回答。谢谢!
    • 作为最佳实践,您应该在父 pom 的依赖管理部分中指定所有依赖版本。更改版本会简单得多,因为您知道所有依赖项版本都在一个地方声明。
    猜你喜欢
    • 2013-05-29
    • 2023-03-10
    • 2019-10-16
    • 2012-12-27
    • 2015-10-07
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多