2012-03-17 27 views
0

我有一個Spring MVC應用程序,它有一個公共前端WAR,一個管理前端WAR和一個共享服務JAR。我的兩個前端項目依賴於各種Spring JAR,就像我的共享服務JAR一樣。他們需要的Spring JAR列表是相似的,但不同。此外,這兩個基於WAR的應用程序依賴於共享服務JAR。在WAR中打包JAR還是放在類路徑中?

如何根據綁定JAR或設置類路徑來部署這組應用程序/ JAR?你會把所有合適的Spring JAR和服務JAR包含到兩個WAR文件中嗎?你會把任何和所有共享的JAR放到類路徑上嗎?如果是這樣,你會通過命令行參數將它們放到Tomcat的類路徑(我正在使用的應用服務器)上,還是隻將類路徑添加到系統類路徑中?你會針對開發和生產場景採用不同的方法嗎?

僅供參考我正在使用Maven,它已將所有內容都打包到WAR文件中,但我不確定這是否是最佳實踐方式。

UPDATE:作爲參考,我發現這個頁面是非常有用的閱讀:http://www.mulesoft.com/tomcat-classpath

感謝,

詹姆斯。

回答

4

保持你的戰爭文件自包含,而不是把東西放在系統類路徑上。然後,您不必擔心繫統和webapp類加載器之間的類加載問題,從長遠來看可以節省大量的挫折。磁盤空間和內存一樣便宜。

+0

服務層JAR怎麼樣?這也將依賴於Spring JAR,儘管我認爲你不能在服務層JAR中包含這些JAR。你會添加合適的Spring JAR到類路徑嗎?還是有更好的方法來處理這個問題? – James 2012-03-17 23:56:36

+1

我將在tomcat lib中放入的唯一數據庫驅動程序。我會在WAR文件的WEB-INF/lib目錄中留下所有其他內容。因此,在部署2個Web應用程序的情況下,每個應用程序都有自己的彈簧罐副本。這有點與我的答案有關http://stackoverflow.com/questions/722448/how-to-avoid-copying-40m-of-java-libs-within-a-war-when-the-wars-size-是-41米/ 722537#722537 – digitaljoel 2012-03-18 02:40:13

相關問題