如何覆盖 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>
我的 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>