2013-02-13 44 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

相關問題