【发布时间】:2020-07-30 19:49:09
【问题描述】:
我有一个问题,希望有人能提供解决方案或解决方法的想法。
这是问题所在:我正在创建一个 JavaFX 应用程序(使用 Eclipse IDE),它具有一些基于 maven pom 文件的依赖项。当我尝试创建一个包含所有依赖项的 uber Jar 时,就会出现此问题。我正在使用 shade maven 插件,但是当它创建 uber JAR 时,它包含来自其他架构的依赖项,如 windows_x86、linux_x86、android、arm,而且列表无穷无尽。
我尝试使用同一个阴影插件中的最小化选项,但它不起作用。我只想包含 macos_x86_64 的依赖项,因为该应用程序目前仅支持 MacOS。我尝试做很多事情来解决这个问题,例如:从零开始创建 pom,删除依赖项,运行 maven 依赖项:分析,将 shade 最小化设置为 true,还有一些但似乎没有任何效果。我还分析了源代码,以确保我没有包含一些可能触发该行为的依赖项,并且没有任何效果。
那么,这里有没有人可以为这里描述的问题提供解决方案?这很疯狂,因为超级 uber Jar 是 1GB,但我的源代码只有 5MB,没有依赖项和资源。我在检查pom的依赖有多大,不大于200MB(考虑依赖的依赖)。
提前感谢您的帮助!
【问题讨论】:
-
阴影似乎是正确的方法。它是如何失败的?我认为实现起来可能并不简单,但应该可以过滤掉其他架构的二进制文件。你有哪些包含平台相关代码的依赖项?
-
我用 Capsule 装胖罐子 dig.floatingsun.net/…
标签: java maven javafx optimization executable-jar