對於較小的依賴關係,這對於部署是私有的,請將WEB-INF/lib
保留在您的.war
中,這就是它的用途。如果您使用的Maven對於範圍內的任何內容都應該是非常自動和透明的。
對於大的,複雜的依賴關係或依賴性那將幾個應用程序之間共享,使用選項(4):
部署每個邏輯庫(如「OpenJPA的」或「Log4J的」)作爲一個模塊,包括它的api和impl jars以及其他AS7模塊尚未提供的依賴JAR。如果已經有一個模塊添加了對它的依賴關係,而不是添加JAR到你的模塊。如果幾個不同的庫共享一些常見的依賴關係,請將它們拆分爲模塊並將其作爲模塊依賴關係添加到module.xml
中。
使用jboss-deployment-structure.xml進行部署.war
/.ear
/任何聲明模塊的依賴關係,如果它不是自動檢測和自動加載。
我覺得這是一箇中等到低調的方法,效果很好。在部署中將所有東西都轉儲到WEB-INF/lib
更麻煩,這是Java EE標準要做的事情。它加速了重新部署,並通過減少類別/版本衝突來節省大量的部署/測試時間。
如果您願意做一些工作,您可以使用Maven和maven-dependency-plugin生成已包含傳遞依賴項的模塊。你可以在module I wrote for EclipseLink integration in AS 7中看到一個例子。我儘可能自動創建AS7模塊。
我想遷移到JBoss7並不斷獲取類路徑輸入錯誤,例如。 「不指向一個有效的類路徑引用jar」 - 似乎你解決/沒遇到這樣的錯誤。這可能與JBoss7 Class加載有關,不少人遇到同樣的問題,但沒有解決方案 - 你有什麼想法嗎? –
聽起來像你的問題要麼在你的module.xml文件中(如果你正在將JAR加載爲模塊)或者你的jboss-deploment-structure.xml文件。引用靜態庫JAR的最好方法是將它們放在modules目錄的子目錄中。如果您試圖引用「org.foo.bar.FooBar;」在你的FooBarJar.jar文件中,你的目錄結構想成爲「JBOSS_HOME/modules/org/foo/bar/main/FooBarJar.jar」,你需要包含你的「JBOSS_HOME/modules/org/foo/bar/main /modle.xml「文件來定義映射到jar以及它可能具有的任何依賴關係... – travega
...(繼續)您的模塊。xml文件將如下所示: <! - - 在此插入資源 - > <依賴性> <! - 在此處插入依賴 - > 依賴> 」。然後,您可以將模塊引用添加到位於WAR的WEB-INF目錄中的jboss-deploment-structure.xml文件。這會看起來像這樣:「 」...... –
travega