java - 使用像汇编插件一样的maven shade插件

标签 java maven maven-assembly-plugin maven-shade-plugin

我有一个 pom 文件,它构建了一个利用各种 Spring 模块的独立应用程序,特别是它使用了集成文件模块。最初我的 pom 文件使用 Maven Assembly 插件,但它创建的 uber jar 没有正确运行。进一步的研究似乎表明程序集插件中存在一个错误,它基本上会破坏 uber jar 中的依赖关系。推荐的解决方法是 Shade 插件,它适合我。

但是,程序集插件能够创建一个包含 uber jar 和其他资源(属性文件、脚本等)的 zip 文件。然后您可以使用该 zip 将其解压缩并运行您的脚本,该脚本将调用您的 jar 并传入其他项目(例如)。据我所知,阴影插件不会执行此附加功能。

我已经尝试使用配置文件组合 shade 和 assembly 插件,但我不知道如何让它使用 shade 插件来构建 uber jar,然后使用 assembly 插件来构建 zip其他东西。

有人做过类似的事情吗?我只需要能够创建我的 uber jar,然后用脚本、xml 和其他项目压缩 uber jar。

有没有办法在不将它绑定(bind)到阶段的情况下运行程序集插件?如果有的话,我可以运行 package 并运行 shade 插件,然后独立运行 assembly 插件?如果可能的话,这将解决我的问题。

最佳答案

这个答案有点晚了,但我和你有相同的场景(“打包阶段”:1. 构建带有阴影的 uber-jar,2. 将其打包到 assembly zip 中)我所要做的就是改变pom.xml 中指定插件的顺序。

如果在组装之前指定了 shade,它会在同一阶段之前执行。

关于java - 使用像汇编插件一样的maven shade插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20591993/

相关文章:

java - 从 JOptionPane 中删除标题栏

java - Webjars + Spring Boot。自定义资源路径

java - Eclipse 将此代码视为错误,但它在 Maven 中编译得很好

java - xuggler maven依赖pom.xml文件错误

java - Maven 测试 - java.lang.ClassNotFoundException : org. testng.AssertJUnit

java - Maven 依赖插件添加名为目录的 Artifact

java - 多播支持在 Java 交易系统中可能有哪些用途?

java - 使用 FusedLocationProviderClient 时的 onLocationChanged

maven - 如何用maven-assembly-plugin构建两个不同的jar包?

java - Maven 程序集描述符属性