2013-02-13 43 views
2

我的项目的战争,在添加一些maven依赖项后,增加到32MB!JBoss 7项目库作为模块

我需要缩小这个尺寸。 gooogling我发现,使用模块可能是这样的。

最佳做法是什么?将每个库添加为新模块?用“所有库”创建一个模块?我甚至不知道这是否可能。

所以,我有,例如:

<dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>5.0.0</version> 
     </dependency> 

我想补充“提供”到依赖,并保持在JBoss中的JAR,而不包括它在我的战争。

怎么样? PS:我知道它将适用于所有已部署的应用程序。这很好。

回答

6

将应用程序从它的库中分离出来对我来说听起来不是一个好主意 - 你正在显着增加应用程序的上下文依赖性,并且将无法将应用程序部署到另一个服务器上,而无需先修改它的内部。这可能不适用于生产环境。

A of 32MB ...那又如何?现在几个额外的MB并不是真正的问题。一个商业应用程序与几个hunderds MB进行权衡并不是那么罕见。

所以,严厉警告后,这是怎么可以这样做:

转到JBOSS_HOME/modules目录并为伪坐标的目录层次结构(一个com。示例依赖会坐在/ COM /示例/文件夹)。

在此文件夹中,创建一个文件夹main

将图书馆jar放入主文件夹中。

创建module.xml文件,并填写:

<module xmlns="urn:jboss:module:1.1" name="com.example"> 
    <resources> 
     <resource-root path="mylib.jar"/> 
    </resources> 
</module> 

我不知道,如果重新启动服务器是必要的。

如果你的模块都有它自己的依赖关系,您可以通过添加某事像这样到module元素予以公告:

<dependencies> 
    <module name="com.example.implementation"/> 
</dependencies> 

我会建议在它自己的模块,每个库部署(如顾名思义;)模块化。然后你可以单独交换。

+0

很好的答案!谢谢!我特别欣赏这个警告,并会认真思考它! – 2013-02-13 13:33:13

+0

@FabioB。 - 很高兴我可以有所作为:) – kostja 2013-02-13 13:43:32

+0

为了开发目的,膨胀的WAR文件可能是有害的,因为它们减少了重新启动服务器之前重新部署的次数。你只有很多PermGen空间才能重新部署。当然,您不能即插即用到其他容器中,但典型的开发人员多久会彻底更换JEE容器。 – Rich 2014-03-06 22:22:06

相关问题