Maven-shade-plugin,uber-jar和重叠的类

Maven-shade-plugin,uber-jar和重叠的类,第1张

Maven-shade-plugin,uber-jar和重叠的类

要做的第一件事是尽可能消除重叠类的许多明显原因。例如:

  • 您对spring 2.5.6和spring 3.1.4都有依赖性,这将给您带来更多的问题,而不仅仅是阴影插件。设置模块依赖性,以便您只有一个版本的spring。如有必要,请使用依赖项排除(例如,您具有不可控制的传递性依赖项)。
  • 修复依赖版本冲突后,您还可以使用shade插件配置来配置将哪些jar放入uber-jar,如http://maven.apache.org/plugins/maven-shade-plugin/examples/includes中所述-excludes.html
  • 一些罐子可能包含重叠罐子中的所有类。
    • 我怀疑commons-logging-1.1.3.jar具有commons-logging-api-1.1.jar中声明的类的超集。在这种情况下,您可以排除API jar。
    • 响应于已编辑的问题 ,javax.mail-1.5.1.jar包含javax.mail-api-1.5.1.jar中的类的超集。由于这些版本显然是相同的版本,并且重叠的类应该相同,因此使用重叠的类构建带阴影的jar不会造成任何伤害(它将从最后处理的jar中获取这些类)。但是,如果排除api jar,则构建会更整洁并且会更快。

您不太可能需要在有阴影的jar中保留类的冲突版本。如果这样做,shade插件还允许重定位类,如http://maven.apache.org/plugins/maven-
shade-plugin/examples/class-
relocation.html中所述



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5055637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存