spring - 春季启动版本 - 如何覆盖我们想要的?
问题描述
我有spring项目,这是一个多模块项目,它使用spring boot(test/pom.xml;和api/pom.xml)
test/pom.xml 具有以下引导:
<spring.boot.version>2.0.6.RELEASE</spring.boot.version>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
jackson-core 的版本是 --> 2.9.0.7
模块的 (api) pom.xml (片段,显示 Spring Boot 依赖项)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
可以看出,我试图从 spring boot 中排除 jackson-xxx。
现在,我有一个 jar,比如 a.jar,它具有显式依赖项(具有特定版本的 jackson -> 2.9.0.8);以及我添加到我的 api/pom.xml 的依赖项(上面未显示)
现在,当我看到哪个版本的 jackson-core, jackson-databind 被解析时;它需要版本-> 2.9.0.7(它是弹簧靴的一部分;但是我试图排除它)。
谁能帮我理解为什么会发生这种情况,以及如何根据需要选择特定版本。
解决方案
使用 maven 依赖插件来找出依赖的来源:
mvn dependencies:list
或者简单地将 explizit 版本直接添加到您的 pom 中:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0.8</version>
</dependency>
这应该覆盖 spring 依赖项的版本
推荐阅读
- python - 运行文件夹中的每个文件并使用 Python 打印失败率
- c# - 反序列化嵌套不定数量的json数组
- javascript - Ckeditor - 链接元素导航到相对路径而不是绝对路径
- python-3.x - 如何使用 Python3 从 Web 服务器下载 .iso 或相关文件
- sockets - 计算机网络中的套接字地址
- javascript - npm 从未配置的注册表安装包
- javascript - Selenium Python Shadow DOM 输入文本
- django - Django 媒体文件被 403 禁止
- javascript - 如何计算 2 个日期范围并在 2021 年 9 月 1 日之后开始计算
- javascript - 试图创建一个返回选定 CSS 属性但相当滞后的函数