【问题标题】:Force latest version for maven dependencies强制 Maven 依赖项的最新版本
【发布时间】:2014-10-13 06:27:37
【问题描述】:

我有以下依赖项(仅到目前为止)pom.xml

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.6.2.RELEASE</version>
</dependency>  

这个依赖显然通过它的 pom.xml 依赖于其他“依赖”......当 maven 完成下载这些依赖时,我注意到它没有获取最新版本的 Spring 东西(4.0.6.RELEASE)...... . 它抓取了一个 3.2.x 版本。

如何强制 maven 获取最新版本的 Spring 内容?我是否需要显式修改我的 pom.xml 以包含所有依赖项,或者我可以为此使用一些“魔法”吗?

谢谢。

【问题讨论】:

  • 当然,您需要更改您的 pom,因为您的 pom 描述了您的构建正在使用的内容,该内容已签入您的版本控制。

标签: spring maven


【解决方案1】:

春季“材料清单”

拯救可能来自 Maven 支持并由 Spring 发布的特殊“材料清单”POM。在他们的手册中引用Maven "Bill Of Materials" Dependency

在使用 Maven 时可能会意外混合不同版本的 Spring JAR。例如,您可能会发现第三方库或另一个 Spring 项目将传递依赖项引入到旧版本。如果您忘记自己显式声明直接依赖项,则可能会出现各种意想不到的问题。

为了克服这些问题,Maven 支持“材料清单”(BOM) 依赖项的概念。您可以在您的 dependencyManagement 部分中导入 spring-framework-bom 以确保所有 spring 依赖项(直接和传递)都处于同一版本。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-framework-bom</artifactId>
      <version>4.0.6.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

这对你有用吗?

【讨论】:

    【解决方案2】:

    查看spring-data-jpa 工件pom 文件,我们可以看到它有一个名为spring-data-parent 的父级,当前版本为1.4.2.RELEASE。它的 pom 描述了依赖项及其版本。目前春季版在3.2.10.RELEASE

    您可以完成您想要的一种方法是添加对 spring 工件的显式依赖。但是您仍然需要定义它们的版本。

    【讨论】:

    • 谢谢...我希望不是这样。
    • 是的,不幸的是,如果你想要一个不同的版本,你必须明确覆盖传递依赖的版本。
    猜你喜欢
    • 2020-08-10
    • 1970-01-01
    • 2011-09-04
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2016-09-18
    相关资源
    最近更新 更多