Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
spring boot个性化版本-如何覆盖我们想要的?_Spring_Maven_Spring Boot - Fatal编程技术网

spring boot个性化版本-如何覆盖我们想要的?

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项目,这是一个多模块项目,它使用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>
    <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>