【问题标题】:Multiple identical jar files in an ear file一个ear文件中有多个相同的jar文件
【发布时间】:2010-11-26 03:22:53
【问题描述】:

我已经制作了一个带有war文件的ear文件,但是ear文件包含jar文件,这些jar文件已经在war文件的lib文件夹中。如何删除重复的 jar 文件以及这些 jar 文件应该在哪里?在war文件的lib文件夹中还是在war文件之外? (我在我的项目中使用了 maven ear 插件和 maven war 插件)。

【问题讨论】:

  • 您使用的是哪个 EE 版本? 5 还是 6?
  • 我使用的是 Java 1.6,所以我猜它是 J2EE 6?但是这两者有什么区别呢?

标签: java jakarta-ee maven maven-ear-plugin


【解决方案1】:

我终于找到了一种方法,通过在一个 ear 文件中生成瘦战争文件来做到这一点。我受到了这里的 maven-war-plugin 示例的启发 skinny-wars

按照示例的说明,我将所有 jar 文件从 war 模块中移出,并将其放入 ear 文件中的 lib 文件夹中。

所以最终的ear文件结构将是:

  ear-app
   -- lib (all the jar files will be here)
   -- webModule1
      -- lib (empty)
   -- webModule2
      -- lib (empty)
   -- ejbModule

【讨论】:

  • 这是“maven-ear-plugin”而不是 maven-war-plugin。
【解决方案2】:

如果您有 EJB 存档和 WEB 存档都使用的 jar,那么您可以执行以下操作:

  1. 把所有常用的jar都放在根目录下 .ear
  2. 使用 ejb 和 web 存档中 manifest.mf 的 Class-Path 属性来引用这些 jar 文件。请记住,jar 的位置将相对于 ear 文件的根目录。

即使你没有 EJB jar,上面的步骤也可以。

【讨论】:

  • 即使我使用 Class-Path,war 文件总是有一个 lib 文件夹,其中包含 jar 文件。我怎样才能删除它?
猜你喜欢
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多