【问题标题】:How to reduce the size of ear file如何减小ear文件的大小
【发布时间】:2015-04-29 07:21:22
【问题描述】:

在添加了许多外部 jar 之后,我的 EAR 文件的大小已达到 100 MB 左右。

环境:Java Spring/Websphere 应用服务器/Maven

请分享减小 EAR 文件大小的技巧。

似乎外部罐子对大尺寸的贡献最大。是否可以遵循如下方法,如果可以,该怎么做?

  1. 使用大型 jar 的编译范围进行 maven 构建
  2. 将大尺寸的 jars 保留在 app server lib 中,这样应用程序会在运行时从 appserver 获取这些 jars 吗?

谢谢 斯密莎

【问题讨论】:

  • 您的 EAR 中有多少应用程序? EAR 里面有没有像图片这样的大资源? 100MB 中有多少是库?

标签: spring maven websphere ear filesize


【解决方案1】:

您应该真正检查您的 jar,尤其是做得不好的 Maven 构建会向应用程序添加许多不必要的 jar(如 jta、servlet、jee-api 等),因此请确保您没有它们。有时,您在 EAR 中的每个 Web 模块中都会复制 jar。

第二个 WebSphere 是 Java EE 6 服务器,因此它提供了许多通用功能,如 JAX-WS、JAX-RS、JPA 等,因此您应该考虑使用它们,然后再将所有这些作为第三方库放入你的申请。

如果你想使用共享库的方法,不要将 jars 放在服务器 lib 文件夹或服务器类路径中。不建议这样做。
通过Environment > Shared libraries 创建共享库请参阅here 并将它们分配给应用程序。

【讨论】:

    【解决方案2】:

    为了减少战争规模,你可以考虑

    1. 静态内容:将图像等静态内容保留在 war 文件之外,并通过应用程序使用对位置的引用来引用它们。
    2. 共享库:如果大部分大小是由共享库贡献的,您可以将其分离出来。为此,您可以将战争库放置在以下位置之一 a) 在 Server Lib 文件夹中,不推荐,因为不同的应用程序可能使用不同的版本。 b) 在服务器应用程序库文件夹中 b)在共享文件夹中,并将该文件夹包含在类路径中。 c) 使用仅部署更改的爆炸式战争部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多