Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将maven配置为打包fat jar,而无需在vertx项目中解包依赖项,就像spring boot一样_Java_Maven_Spring Boot_Jar_Vert.x - Fatal编程技术网

Java 将maven配置为打包fat jar,而无需在vertx项目中解包依赖项,就像spring boot一样

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

我如何告诉maven在构建胖jar时包含依赖项jar文件,而不是将它们解压缩到.class文件中

我有一个Vertx3.6.0项目,生产一个胖罐子。我使用的是Vertex maven插件:1.0.13,我运行
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有一个吗?