2013-02-03 60 views
0

我開始使用JBoss7.1 quickstarts的體系結構構建我的web應用程序。Light WARs和全球可用的庫

我喜歡它,但現在我需要添加一些庫到我的項目,所以我添加了幾個依賴pom.xml。例如,這是用於JasperReports:

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

等等,對於其他圖書館。不幸的是,在構建我的項目後,我注意到由「mvn包」產生的戰爭規模是...... 36MB?!?這太多了,我必須很快將它們上傳到遠程服務器!

笨重的東西都存儲在/ WEB-INF/lib中,確實是一組JAR(我作爲依賴包含的庫)。

什麼是最好的做法,不必每次包括我的戰爭中不必要的有效載荷?

我想我應該在JBoss環境中的某個地方包含JAR並以不同的方式聲明Maven依賴關係,也許...但是怎麼做?

回答

0

您可以使用Jboss作爲7模塊系統來將一些依賴性作爲JBoss模塊帶走戰爭。

For an example on how to create and use a module you can look at this blog post.

pom.xml文件,你應該添加一個scope元素爲modulerized罐子provided的值(應該已經存在了Java EE depedencies)。這將告訴maven,這個罐子將由環境提供,不需要把它們放在戰爭中。

這種技術會讓你的戰爭更輕,但是你將失去對運行時間安排的管理。您將必須確保您的應用程序將部署在所有服務器上都具有正確的版本。

+0

謝謝,但你對模塊有什麼意義?我是否需要創建一個只有庫依賴關係的新項目,並將它作爲依賴項添加到主應用程序項目中? –

+0

JBoss模塊是JBoss處理應用程序服務器的不同部分(內部,外部)的加載隔離以防止類加載問題的新方式。您需要將jar放在具有正確xml文件的特定文件夾中以創建模塊。在JBOSS部署中,您的war WEBINF中的xml文件需要引用該模塊。每一件事都可以在我的帖子中找到的鏈接中解釋。 – Kazaag

+0

你可以看看這個問題有更詳細的答案:http://stackoverflow.com/questions/8289813/best-practice-for-loading-3rd-party-jars-in-j-boss-as7-standalone-deployment – Kazaag