一个EAR文件中的Java库如何被另一个EAR文件访问?

时间:2012-10-24 17:44:43

标签: java java-ee jar weblogic ear

我有两个.Ear文件,即A.EAR和B.EAR。第一个文件是我的应用程序(大约1.5 MB),第二个文件包含所有需要的库,如Hibernate,log4j等(大约70 MB)。如何在weblogic上部署它们,以便我在A.EAR中的代码使用B.EAR中的库?

  1. 我无法将它们打包成一个.EAR文件,因为我需要每周通过电子邮件发送我的应用程序。在发送电子邮件时,我只发送A.EAR文件。
  2. 我无法将使用过的库放在weblogic的lib文件夹中,因为其他应用程序使用不同的库版本。
  3. 修改

    找到正确的答案后,似乎this Q on SO在某种程度上是相关的。

2 个答案:

答案 0 :(得分:4)

您可以将B.ear定义为共享应用程序库,并从A

访问它

http://docs.oracle.com/cd/E17904_01/web.1111/e13706/libraries.htm#i1065356

答案 1 :(得分:0)

这可能不是您问题的直接答案,但我会根据“每周通过电子邮件发送应用程序”的需要,设计一个实际可部署应用程序的结构(即将其拆分为多个EAR文件)。

对我来说,为一个应用程序提供2个单独的EAR文件似乎很危险。我知道你说的是B.EAR包含不变的库(Hibernate,log4j)。但是,通过在A.EAR中使用它们,它们会继承成为您的应用程序的germaine。换句话说,你的应用程序真的是A + B ...... A.EAR不能没有B.EAR。

相反,您是否可以设置某种修订/源代码控制存储库(SVN,Git等)并使用Ant / Ivy或Maven来管理您的依赖项?

这样,任何需要应用程序副本的人都可以访问存储库,下载源代码,允许Ant / Ivy解析依赖关系和构建。