java - 配置maven打包fat jar,无需像spring boot那样解压vertx项目中的依赖项

标签 java maven spring-boot jar vert.x

如何告诉 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/

相关文章:

java - 试图阻止 Swing worker

javascript - 为什么 Java 中 ArrayList 中的第一个值总是返回 null?

spring-boot - Spring Boot中不同微服务的两个实体如何建立关系?

java - 在生产版本中包含不同的 logback.xml

maven - @Valid 无法解析为 Spring 4.0.3 类型

java - Java 中的 Azure Function 无法在本地运行

spring-boot - Flyway 在尝试连接到 GCP SQL 时抛出异常 "HikariPool-1 Connection is not available"

java - java中Arraylist<Integer>的ArrayList的字典排序

java - 如何在 Java 8 中使用流将集合/数组转换为 JSONArray

java - 如何审计 Java EE 项目?