漏洞扫描突出了我们Quarkus应用程序的Docker镜像中Maven JARs的存在,这让我感到惊讶。这些都是从quarkus-app/lib/main上获得的。运行mvn quarkus:dependency-tree会显示包含它们的路径:
[INFO] --- quarkus-maven-plugin:2.2.3.Final:dependency-tree (default-cli) @ my-app ---
[INFO] Quarkus application PROD mode build dependency tree:
[INFO] my-group:my-app:pom:1.x-SNAPSHOT
...
[INFO] ├─ io.quarkus:quarkus-undertow-deployment:jar:2.2.3.Final (compile)
...
[INFO] │ ├─ io.quarkus:quarkus-core-deployment:jar:2.2.3.Final (compile)
...
[INFO] │ │ ├─ io.quarkus:quarkus-bootstrap-core:jar:2.2.3.Final (compile)
...
[INFO] │ │ │ ├─ io.quarkus:quarkus-bootstrap-maven-resolver:jar:2.2.3.Final (compile)
[INFO] │ │ │ │ ├─ org.apache.maven:maven-embedder:jar:3.8.1 (compile)再一次,我惊讶地看到它正在拉入部署JAR,因为根据我有限的理解,我不会期望在运行时为一个不可变的生产应用程序需要这些JAR。
编辑: POM仅引用扩展,然后存在引用Quarkus BOM的父POM。
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-undertow</artifactId>
</dependency>如果需要部署JAR,为什么需要,如果不需要,有什么方法可以排除它们吗?
发布于 2021-09-22 11:44:33
正如@Ladicek建议的那样,这个问题的原因是其中一个依赖项直接引用了部署工件(只是不是我在问题中发布的那个!)。这导致所有扩展的部署JAR都打包在quarkus-app/lib/main中。
将quarkus-logging-json-deployment更正为quarkus-logging-json解决了此问题。
https://stackoverflow.com/questions/69266755
复制相似问题