Java 将maven配置为打包fat jar,而无需在vertx项目中解包依赖项,就像spring boot一样
我如何告诉maven在构建胖jar时包含依赖项jar文件,而不是将它们解压缩到.class文件中 我有一个Vertx3.6.0项目,生产一个胖罐子。我使用的是Vertex maven插件:1.0.13,我运行Java 将maven配置为打包fat jar,而无需在vertx项目中解包依赖项,就像spring boot一样,java,maven,spring-boot,jar,vert.x,Java,Maven,Spring Boot,Jar,Vert.x,我如何告诉maven在构建胖jar时包含依赖项jar文件,而不是将它们解压缩到.class文件中 我有一个Vertx3.6.0项目,生产一个胖罐子。我使用的是Vertex maven插件:1.0.13,我运行mvn clean package来构建。为了利用Veracode SCM(静态扫描),fat jar中的依赖项必须保持完整,这意味着原始依赖项jar文件必须包含在fat jar中。Maven正在解包所有依赖项,所以我只有类文件 我们有另一个SpringBoot项目,它按预期工作。最后的sp
mvn clean package
来构建。为了利用Veracode SCM(静态扫描),fat jar中的依赖项必须保持完整,这意味着原始依赖项jar文件必须包含在fat jar中。Maven正在解包所有依赖项,所以我只有类文件
我们有另一个SpringBoot项目,它按预期工作。最后的spring引导重新打包目标似乎将所有依赖项jar文件放在jar文件的boot-INF目录中
使用Vertex maven插件的最终2个目标:
maven-jar插件:2.4:jar
vertxmaven插件:1.0.13:package
使用spring boot maven插件的最终2个目标:
maven-jar插件:2.4:jar
springbootmaven插件:2.1.2.版本:重新打包
我已经在文档中搜索了vertxmaven插件
,到处都是,到目前为止我一点运气都没有
对于非spring启动应用程序,有没有办法获得相同的重新打包行为?对于Vert.x,您不能这样做,因为它不进行奇特的类加载
但由于它是可嵌入的,所以您可以创建一个只启动Vert.x的SpringBoot应用程序。然后,您将使依赖项扫描程序正常工作
但是如果Veracode不能检查您的POM或Gradle构建文件而不是扫描JAR,我会首先检查它。如果您的打包要求是针对Veracode扫描件,您可能会尝试使用maven assembly插件将您的项目工件打包到tar或zip中。
Veracode无法为非spring启动项目扫描另一个jar中的依赖项jar。因此,您可以尝试以下方法之一。i) 使用maven assembler插件进行tar打包,或者ii)如果比较简单,可以将其转换为spring boot项目,或者iii)使用maven shade插件创建uber jar,并且需要进行一些配置更改,以避免解压缩到.class文件。仍然建议您可以使用tar打包选项进行探索-(参考:)Spring Boot有一个定制的类加载器,使它能够解包嵌套的jar。Vert.x有一个吗?