目前我的项目使用spring boot starter test:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.3.8.RELEASE</version>
<scope>test</scope>
</dependency>
然而,尽管有测试范围,它还是将 spring-core(在此版本中是一个易受攻击的 tpl)作为编译范围传递依赖项引入,并且它出现在我编译的二进制文件中。
我知道我可以通过使用测试范围显式拉动弹簧芯来解决此问题:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.12.RELEASE</version>
<scope>test</scope>
</dependency>
然而,这不应该是必要的。为什么仅在测试中可用的依赖项将依赖项拉入编译范围?