如何在Gradle 7.6环境下从spring-web Jar中排除HttpInvokerServiceExporter类
解决Spring Boot打包时排除spring-web中指定类的Gradle配置问题
我当前使用Gradle 7.6与Spring Boot 2.7.18版本,引入的spring-web Jar版本为5.3.13,该Jar经Veracode扫描存在极高漏洞,需要在打包时排除其中的org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter类。此前尝试的配置jar { exclude "org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.class" }未生效。
解决方案
Spring Boot项目默认使用bootJar任务生成可执行JAR,而非普通的jar任务,所以之前的配置不生效。正确的配置方式如下:
- 仅针对Spring Boot可执行JAR配置:
bootJar { exclude 'org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.class' }
- 若同时需要生成普通非可执行JAR,可同时配置两个任务:
jar { exclude 'org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.class' } bootJar { exclude 'org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.class' }
配置完成后,执行打包命令:
- Linux/macOS:
./gradlew bootJar - Windows:
gradlew.bat bootJar
打包后的JAR文件中将不再包含指定的类。
内容的提问来源于stack exchange,提问作者Shrinivas Joshi
相关产品推荐
相关产品推荐

