如何告诉 maven 在构建 fat jar 时包含依赖项 jar 文件,而不是将它们解压到 .class 文件?
我有一个 vertx 3.6.0 项目,正在生成一个 fat jar。我正在使用 vertx-maven-plugin:1.0.13,并且运行 mvn clean package
build 。为了利用 Veracode SCM(静态扫描),我的 fat jar 内的依赖项必须完整,这意味着原始依赖项 jar 文件必须包含在我的 fat jar 内。不过,Maven 正在解压所有依赖项,因此我拥有的只是类文件。
我们还有另一个 Spring Boot 项目,它按预期工作。看来最后的春靴repackage
目标将所有依赖 jar 文件放入 jar 文件内的 BOOT-INF 目录中。
使用 vertx-maven-plugin 的最终 2 个目标:
maven-jar-plugin:2.4:jar
vertx-maven-plugin:1.0.13:package
使用 spring-boot-maven-plugin 的最终 2 个目标:
maven-jar-plugin:2.4:jar
spring-boot-maven-plugin:2.1.2.RELEASE:repackage
我在文档中搜索了 vertx-maven-plugin
以及各地https://maven.apache.org和其他地方到目前为止没有任何运气。
有没有办法为非 Spring Boot 应用程序获得相同的重新打包行为?
最佳答案
你不能用 Vert.x 来做到这一点,因为它不进行花哨的类加载。
但由于它是可嵌入的,您可以创建一个仅启动 Vert.x 的 SpringBoot 应用程序。然后你就会让你的依赖扫描器开始工作。
但我会首先检查 Veracode 是否无法检查您的 POM 或 Gradle 构建文件,而不是扫描 JAR。
关于java - 配置maven打包fat jar,无需像spring boot那样解压vertx项目中的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56247622/