这是一个 mvn dependency:tree
片段:
...
+- org.springframework.boot:spring-boot-starter-actuator:jar:2.1.12.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.1.12.RELEASE:compile
[INFO] | | \- org.springframework.boot:spring-boot-actuator:jar:2.1.12.RELEASE:compile
[INFO] | \- io.micrometer:micrometer-core:jar:1.1.9:compile
...
如您所见,我的项目使用的是 io.micrometer:micrometer-core
的 1.1.9 版。
我想使用这个库的最新版本。
此版本是由于:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.12.RELEASE</version>
</parent>
我无法更改此版本。
有没有办法只用另一个更新的 io.micrometer:micrometer-core:1.1.19
覆盖?
答案 0 :(得分:0)
是的,只需将依赖项直接添加到您的 POM 中即可:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>...</version> <!-- add latest version here -->
</dependency>
Maven 将解析该版本,因为它遵循“最近的定义”(参见 https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)。
但是请注意,您应该确保您的版本与 Spring Boot 项目兼容,以防兼容性发生变化。如果升级 Spring Boot 是一种选择,这应该是最好的方法,因为它应该拉取更新版本的千分尺(例如 spring-boot-starter-actuator
版本 2.4.4 使用千分尺 1.6.5:https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-actuator/2.4.4/spring-boot-starter-actuator-2.4.4.pom) .
答案 1 :(得分:0)
覆盖传递依赖的最佳方法是将版本放入 <dependencyManagement>
。
只需添加一个条目
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>...</version>
</dependency>
到 POM 的 <dependencyManagement>
部分。这将覆盖传递依赖,但不会影响直接依赖。此外,如果此 jar 将来不再是传递依赖项,它将被忽略。