2012-03-17 25 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

相关问题