Maven不正确的依赖版本解析

问题描述 投票:0回答:1

当包含最新的Spring Hateoas Starter时,Maven正在下载错误的Spring Hateoas。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-hateoas</artifactId>
    <version>2.2.0.M1</version>
</dependency>

当我运行maven依赖树时,我得到以下内容:

> mvn dependency:tree | grep hateoas
INFO] +- org.springframework.boot:spring-boot-starter-hateoas:jar:2.2.0.M1:compile
[INFO] |  +- org.springframework.hateoas:spring-hateoas:jar:0.25.1.RELEASE:compile

这似乎不正确,因为POM将1.0.0.M1列为要包含的版本:Spring Hateoas Starter POM

我试图清除缓存并手动删除缓存然后运行mvn -U。结果总是一样的。

附加信息:

Apache Maven 3.5.4 (Red Hat 3.5.4-4)
Maven home: /usr/share/maven
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.fc29.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.20.14-200.fc29.x86_64", arch: "amd64", family: "unix"
<repositories>
    <repository> 
        <id>repository.spring.milestone</id> 
        <name>Spring Milestone Repository</name> 
        <url>http://repo.spring.io/milestone</url> 
    </repository>
</repositories>
spring-boot maven-3 spring-hateoas
1个回答
1
投票

根据经验,“永远不要混合来自不同版本框架的罐子”。在这种情况下,您尝试将Spring Boot 2.1与较新的Spring Boot 2.2 jar混合使用。这会导致各种奇怪的问题,因为它们也会引入不同的框架版本。 (春季5.2等)

现在,通过使用spring-boot-starter-parent作为项目的父项可以部分防止这种情况,因为它可以强制管理依赖项版本。另请参阅参考指南的this section

如果您想尝试使用当前Spring Boot版本的另一个Spring HATEOAS版本,可以尝试覆盖spring-hateoas.version属性。你仍然需要里程碑或快照回购。

但是我不确定Spring HATEOAS 1.x是否使用Spring 5.1或其他版本。

© www.soinside.com 2019 - 2024. All rights reserved.