如何覆盖Spring Boot导入的版本号,而无需在依赖项管理部分手动设置每个工件?
1.5.7.RELEASE
2.9.1
org.springframework.boot
spring-boot-dependencies
${spring.boot.version}
pom
import
com.fasterxml.jackson
jackson-bom
${jackson.version}
pom
import但是,当我运行
mvn dependency:tree "-Dincludes=com.fasterxml.jackson.*" -Dverbose输出
[INFO] ------------------------------------------------------------------------
[INFO] Building dpt-domain-core 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ dpt-domain-core ---
[INFO] net.initech.dpt:dpt-domain-core:jar:1.0.0
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.10:compile
[INFO] | +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile - omitted for duplicate)
[INFO] | \- (com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile - omitted for duplicate)
[INFO] \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.8.10:compile
[INFO] +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile - omitted for duplicate)
[INFO] +- (com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile - omitted for duplicate)
[INFO] \- (com.fasterxml.jackson.core:jackson-databind:jar:2.8.10:compile - omitted for duplicate)在哪里2.8.10的值是jackson.version那个org.springframework.boot:spring-boot-dependencies:1.5.7.RELEASE:pom
定义。
但是,如果我显式添加
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
${jackson.version}
com.fasterxml.jackson.core
jackson-annotations
${jackson.version}致我的依赖性管理节,则它正确地解析为:
[INFO] ------------------------------------------------------------------------
[INFO] Building dpt-domain-core 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ dpt-domain-core ---
[INFO] org.autodatacorp.dpt:dpt-domain-core:jar:1.0.0
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.1:compile
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.1:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.1:compile
[INFO] \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.1:compile
[INFO] ------------------------------------------------------------------------这很令人费解,因为这看起来应该等同于做一个import的com.fasterxml.jackson:jackson-bom:2.9.1:pom应该是等价物手动将该代码的内容粘贴到。
我甚至试过
org.springframework.boot
spring-boot-dependencies
${spring.boot.version}
com.fasterxml.jackson
jackson-bom
pom
import但没有效果。
PS -如果有问题,我使用的Maven是:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T11:41:47-05:00)
Java version: 9, vendor: Oracle Corporation发布于 2017-09-29 02:24:16
jackson.version覆盖其他框架/库的版本Spring Boot也记录了这一点,
https://docs.spring.io/platform/docs/current/reference/html/getting-started-overriding-versions.html
一些额外的链接,
发布于 2021-02-25 06:32:44
添加jackson-bom.versionpom.xml文件的属性部分应该更新jackson依赖项。这将覆盖Spring Boot父POM中的jackson版本。
2.12.1使用jackson.version是行不通的。请参阅https://github.com/spring-projects/spring-boot/issues/17808
https://stackoverflow.com/questions/46475554
复制相似问题