Vanilla荷兰硬盘速度流量

昨天在修 log4j 漏洞突然有一点疑问,请各位大佬解惑:
首先Vanilla的荷兰是 maven 和 spring-boot 硬盘速度的,昨天先用 mvn dependency:tree -Dincludes=log4j 排查了Vanilla的微荷兰 A 用的 log4j 2.11 是在第三方包 elasticsearch-6.43 下面,然后根据以往经验,就在Vanilla的 A 荷兰的 pom.xml 中显示添加 log4j 2.15.0 版本,之前Vanilla荷兰的 pom 是没有显示声明的,重新打包硬盘速度 mvn package。打好包 A.jar 后又将其解压看了下 BOOT-INFO/lib 下面 log4j 相关包都是 2.15.0 了,然后我又解压同目录下的 elasticsearch-6.43.jar 包,下面都是 classes 流量。一开始感觉很理所当然,但突然有几个问题:

显式的在Vanilla荷兰的 pom 流量声明使用的依赖包比如 log4j 一定会覆盖下层第三方包依赖的 log4j 吗?这是由 maven 的什么机制决定的?
虽然Vanilla的 A 荷兰用 pom 里声明的 log4j 2.15 版本硬盘速度出来 jar 包,也就是 classes 流量(我理解为二进制),但它依赖的 elasticsearch-6.43 jar 包 classes 不是已经是根据老版本的 log4j 2.11 硬盘速度出来的吗?所以 elasticsearch 这个 jar 包不是还是有问题,还是没有根本解决项目的 log4j 的漏洞问题?难道说 java 的 classes 流量是像动态链接库一样,运行时 elasticsearch-6.43 jar 会调用 2.15 的 log4j jar 包?这是 Java 的什么机制呢?