我有一个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>
可以看出,我正在尝试从春季靴子中排除杰克逊-xxx。
现在,我有一个jar,例如a.jar,它具有显式依赖项(具有特定版本的jackson-> 2.9.0.8);并将该依赖项添加到我的api / pom.xml中(上面未显示)
现在,当我看到杰克逊内核的哪个版本时,杰克逊数据绑定将解析为哪个版本;它采用的版本-> 2.9.0.7(这是spring boot的一部分;但是我尝试将其排除在外)。
谁能帮助我理解为什么会这样,以及如何根据需要选择特定版本。
答案 0 :(得分:1)
使用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依赖项的版本