如何覆盖 spring-boot-starter 下自动包含的库版本

How to override version of libraries included automatically under spring-boot-starter

我的 POM 中有 spring-boot-starter,版本由 Camden 依赖管理系统自动解析。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

  <dependencies>    
    <!-- Spring Boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
 </dependencies>

这给了我 spring-boot-starter 的 1.4.3.RELEASE 版本。

其中一个 jar spring boot starter 自动包含在 Maven 依赖项中是 logback-classic: 1.1.18

ch.qos.logback_logback-core version 1.1.8 存在漏洞,因此我想切换到 logback version 1.2 此漏洞在下面的 link

中进行了解释

https://nvd.nist.gov/vuln/detail/CVE-2017-5929

现在,有没有办法将 logback 版本从 spring-boot-starter 自动解析的版本覆盖到 1.2,这样我就不会暴露于此漏洞?

像这样在 pom 中添加属性标签

<properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <start-class>org.roshan.Application</start-class>
        <hibernate.version>5.2.10.Final</hibernate.version>
        <liquibase.version>3.5.3</liquibase.version>
        <liquibase-hibernate5.version>3.6.0</liquibase-hibernate5.version>
        <httpcore.version>4.4.5</httpcore.version>
        <httpclient.version>4.5.3</httpclient.version>
        <docker-maven-plugin.version>0.4.13</docker-maven-plugin.version>
    </properties>

根据你的pom文件,可以先排除1.1.8的依赖,再添加1.2.0的依赖。
例如:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.0</version>
</dependency>