Tomcat 部署:将库JAR与我自己的类分离

Tomcat 部署:将库JAR与我自己的类分离,tomcat,deployment,war,ear,Tomcat,Deployment,War,Ear,我想知道是否有一种方法可以将所有需要的.jar放在一个单独的.war/ear中,这样当我在代码中做了一个小的更改时,就不必将所有的库.jar部署到服务器上了 因为每次我想测试一个变更/在开发过程中将50mb上传到一个越位的Tomcat服务器上并不是一个花时间的好方法 我读到的大多数主题都表示您确实需要一个自包含的.war文件。在这种情况下,它仅与1.war文件共享。不确定在部署描述符中使用某种库引用是否可以实现这一点 根据,您的.jar应该部署到WAR文件中的WEB-INF/lib中。我见过一些

我想知道是否有一种方法可以将所有需要的.jar放在一个单独的.war/ear中,这样当我在代码中做了一个小的更改时,就不必将所有的库.jar部署到服务器上了

因为每次我想测试一个变更/在开发过程中将50mb上传到一个越位的Tomcat服务器上并不是一个花时间的好方法

我读到的大多数主题都表示您确实需要一个自包含的.war文件。在这种情况下,它仅与1.war文件共享。不确定在部署描述符中使用某种库引用是否可以实现这一点

根据,您的.jar应该部署到WAR文件中的WEB-INF/lib中。我见过一些人直接从外部调用Tomcat类加载器,特别是在Tomcat 5+删除了对CATALINA_HOME/shared/lib的支持之后,但这有其明显的缺点

我建议您考虑更改部署过程,而不是更改代码。实际上,您可以对appBase see执行分解的WAR部署,并且只传输已更改的文件

我为之工作,我看到很多用户都是这样做的。工作流程如下所示:

从$/MyApp获取最新版本 运行Ant build.xml 解压缩MyApp.war 创建构建工件 停止Tomcat服务 将构建工件部署到服务器/path/appBase 启动Tomcat服务
最后一步部署构建工件将只部署更改的文件,这将大大减少部署50MB工件所需的时间。

您是否尝试将这些JAR放入servlet容器的类路径中?这可能会对其他Web应用程序产生负面影响,但可能会解决您的上载问题?JBoss7使用其模块化类加载概念提供了一个解决方案