将Maven配置为包装胖罐,而无需在Vertx项目中解开依赖项,就像Spring Boot一样



我如何告诉Maven在构建胖罐时包括依赖罐文件,而不是将它们解放给.class文件?

我有一个vertx 3.6.0项目,生产一个胖罐子。我正在使用Vertx-Maven-Plugin:1.0.13,然后运行mvn clean package进行构建。为了利用Veracode SCM(静态扫描(,我的胖罐中的依赖项必须完好无损,这意味着原始的依赖罐文件必须包含在我的胖罐中。Maven不过要解开所有依赖项,所以我所拥有的只是类文件。

我们还有另一个弹簧启动项目,该项目按预期工作。似乎最后一个弹簧启动repackage目标将所有依赖关系JAR文件放在JAR文件中的boot-inf dir中。

使用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

我已经在https://maven.apache.org和其他地方搜索了vertx-maven-plugin的文档,到目前为止却没有任何运气。

有没有办法获得非Spring Boot应用程序的同样重新包装行为?

您无法使用Vert.x做到这一点,因为它不进行fancy class Loading。

,由于它是可嵌入的,因此您可以创建一个刚刚启动Vert.x的Springboot应用程序。然后,您将使您的依赖扫描仪正常工作。

但是,如果无法检查您的POM或Gradle构建文件而不是扫描JAR。

如果您的包装要求是针对Veracode扫描件,则可能会尝试将项目工件包装到焦油中,或使用Maven-Assembly插件zip。VeraCode无法在另一个JAR内部扫描一个依赖性罐子中的非Spring启动项目。因此,您可以尝试以下一项。i(使用maven-imembler插件包装焦油包装,或ii(将其转换为Spring-Boot项目,如果这更简单,您可以使用Maven-shade插件,或者iii(Uber-jar创建,并且需要进行一些配置更改,以免打开包裹包装到.class文件。仍然建议您使用TAR包装选项进行探索 - (参考:) https://maven.apache.org/plugins/maven-sembly-plugin/

最新更新