spring boot个性化版本-如何覆盖我们想要的?
我有一个spring项目,这是一个多模块项目,它使用spring引导(test/pom.xml;和api/pom.xml) test/pom.xml具有以下启动功能:spring boot个性化版本-如何覆盖我们想要的?,spring,maven,spring-boot,Spring,Maven,Spring Boot,我有一个spring项目,这是一个多模块项目,它使用spring引导(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> <artifact
<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>
2.0.6.0版本
org.springframework.boot
spring启动程序父级
${spring.boot.version}
聚甲醛
进口
jackson core的版本为-->2.9.0.7
模块的(api)pom.xml(显示spring启动依赖项的代码段)
org.springframework.boot
弹簧靴起动器
com.fasterxml.jackson.core
杰克逊数据绑定
com.fasterxml.jackson.core
杰克逊核心
com.fasterxml.jackson.core
杰克逊注释
org.springframework.boot
SpringBootStarterWeb
com.fasterxml.jackson.core
杰克逊数据绑定
com.fasterxml.jackson.core
杰克逊核心
com.fasterxml.jackson.core
杰克逊注释
可以看出,我试图将jackson xxx排除在spring boot之外
现在,我有了一个jar,比如一个具有显式依赖关系的.jar(具有特定版本的jackson->2.9.0.8);以及我正在添加到api/pom.xml中的依赖关系(上面未显示)
现在,当我看到哪个版本的jackson core,jackson databind,哪个版本得到了解决;它采用版本->2.9.0.7(这是spring boot的一部分;但是我试图排除它)
有人能帮我理解为什么会发生这种情况,以及如何根据需要选择特定版本。使用maven dependency plugin找出依赖项的来源:
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>
org.springframework.boot
弹簧靴起动器
org.springframework.boot
SpringBootStarterWeb
com.fasterxml.jackson.core
杰克逊数据绑定
2.9.0.8
这将覆盖spring依赖项的版本谢谢您的回答;我想知道为什么我从spring boot中排除后,我们首先得到了2.9.0.7版本;并添加了一个直接依赖项(这反过来又有我想要使用的正确版本的jackson)。你能帮我理解一下吗?首先,为什么当我从spring boot中排除时,我们得到了2.9.0.7版本?很难说,可能还有其他依赖项带来了jackson libs。因此,
mvn依赖项:列表
,添加了一个直接依赖项,即依赖项管理,首先将使用pom中的版本,如果没有,则将从2级而不是3级的依赖项中使用该版本,依此类推,只需将版本添加到pom的
部分,并请删除排除项。
<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>