2010-11-26 28 views
4

我已经产生了一个带有war文件的耳朵文件,但ear文件包含已经在war文件的lib文件夹中的jar文件。我怎样才能删除重复的jar文件,这些jar文件应该放在哪里?在war文件的lib文件夹中还是在war文件之外? (我在我的项目中使用maven ear插件和maven war插件)。耳朵文件中的多个相同的jar文件

+0

哪个EE版本您使用的? 5或6? – javamonkey79 2010-11-26 03:54:48

+0

我使用的Java 1.6,所以我想它是J2EE 6?但是两者有什么区别? – newguy 2010-11-26 04:25:11

回答

3

我终于想通过在ear文件里面生成细小的war文件来做到这一点。我受到了来自这里的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 
0

如果你有一个被两个罐子使用的EJB归档和Web归档,那么你就可以做到以下几点:

  1. 保留所有常见的罐子在的.ear根
  2. 在ejb和web档案中使用manifest.mf的Class-Path属性来引用这些jar文件。请记住,罐子的位置将相对于耳朵文件的根。

即使您没有EJB jar,上述步骤也会起作用。