当前位置: 首页 > 知识库问答 >
问题:

使用maven-shade-plugin和maven-assembly-plugin

凌嘉勋
2023-03-14

我有一个项目,它使用maven-assembly-plugin打包了几个(可执行的jar)程序集--基本上相同的代码,但针对不同的客户机使用了不同的数据集。

我需要在可执行jar中使用spring,由于spring中的文件命名,我需要使用maven-shade-plugin创建jar。这工作很好,我可以创建可执行的jar,但我不能确定如何将我的其他文件组装到这个新的shaded jar,因为shade插件没有提供assembly插件提供的许多功能。

shade插件在程序集之前执行,所以我假设我可以在程序集中使用shaded工件,但到目前为止我的所有尝试都失败了。有没有可能创建一个程序集,它接受现有的带阴影的jar并简单地将二进制文件和一些其他文件注入其中?

共有1个答案

孟承嗣
2023-03-14

将shadedArtifactAttached设置为true将导致maven将带阴影的工件附加到项目,而不是原始工件。这应该能解决你的问题。

<shadedArtifactAttached>true</shadedArtifactAttached>
 类似资料:
  • Maven shade plugin 为 Maven 提供了 Jar 打包的神器,包括将所依赖的 jar 包都打包到一起。

  • Maven 的 Assembly 插件用来将项目中的依赖、模块和网站稳定等其他资源打包到一个单独的分发文件。

  • 我正在使用maven-shade-plugin在构建的包阶段重新定位一些包。我还使用maven-bundle-plugin生成一个清单。问题是bundle插件在shade插件之前运行(在过程类阶段),并且在生成的清单的导出中没有包含任何我的shade包。 -- 根据要求,我的POM的阴影和捆绑部分: 从这里取的

  • 想法? 谢了。

  • 问题内容: 我想使用Maven-shade-plugin创建uber-jar。但是当我调用命令时,Maven报告有一些重叠的类。我附加了所有有问题的重叠,其中一些是由于库的旧版本和新版本(Log4J)引起的,但是其中一些似乎具有相同的类- 例如javax.mail和mailapi / smtp / imap等。 在这种情况下最好的办法是什么?有一些关键的方法如何确定哪些重叠是安全的,而忽略哪些需要

  • 有没有办法让maven-assembly-plugin也解决eclipse工作区中的项目?