在 Maven 中,如何使我的构建版本使用其依赖项之一的版本?

In Maven, how do I make the version of my build use the version of one of its dependencies?

我正在为外部依赖构建一个帮助程序库。如何使我的构建版本取自外部依赖项的版本?

  <groupId>com.foo</groupId>
  <artifactId>bar</artifactId>
  <version>???</version>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.external.dependency</groupId>
        <artifactId>bar</artifactId>
        <version>3.0.42</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

我希望我的库也构建为 3.0.42,以反映它是该外部依赖项版本(可能还有一些旧版本)的助手。

您可以按照@Thorbjørn 的建议在依赖项标签中使用 ${project.version}

或者,您可以在 POM 的属性部分定义一个 属性 <revision>(注意名称很重要,不要尝试另一个 属性 名称)并定义项目中的 <version> 和库中的 ${revision}.

第二种方法需要相当新的 Maven 版本(例如 3.5.x 或 3.6.x)。