【问题标题】:In Maven, how do I make the version of my build use the version of one of its dependencies?在 Maven 中,如何使我的构建版本使用其依赖项之一的版本?
【发布时间】:2020-01-28 09:07:33
【问题描述】:

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

  <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,以反映它是该外部依赖项的那个版本(可能还有一些旧版本)的助手。

【问题讨论】:

  • 只能通过外部操作文件来设置版本(XSLT 会很好)。 Maven 在这里只提供纯字符串值。这是设计使然。
  • 请注意,但是您可以说您希望依赖项的版本为 ${project.version} (或类似的),从而扭转局面。请注意,您应该在开发过程中使用快照,以降低其可行性。

标签: maven jenkins intellij-idea versioning dependency-management


【解决方案1】:

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

或者,您可以在 POM 的属性部分定义属性 &lt;revision&gt;(注意名称很重要,不要尝试其他属性名称),并将项目和库中的 &lt;version&gt; 定义为${revision}.

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

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2020-07-24
    • 2016-09-18
    • 1970-01-01
    相关资源
    最近更新 更多