当包含最新的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>
答案 0 :(得分:1)
根据经验,“ 请勿混用来自不同框架版本的jars ”。在这种情况下,您尝试将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或其他版本。