我想知道是否有办法将所有需要的 .jars 放在单独的 .war/ear 中,这样当我对代码进行微小更改时,我就不必将所有库 .jars 部署到服务器上?
因为每次我想测试更改/在开发期间上传 50mb(到越位 Tomcat 服务器)并不是消磨时间的好方法。
我在 SO 上阅读的大多数主题都表明您确实想要一个自包含的 .war 文件。在这种情况下,它仅与 1 个 .war 文件共享。不确定这是否可以通过部署描述符中的某种库引用来实现。
我想知道是否有办法将所有需要的 .jars 放在单独的 .war/ear 中,这样当我对代码进行微小更改时,我就不必将所有库 .jars 部署到服务器上?
因为每次我想测试更改/在开发期间上传 50mb(到越位 Tomcat 服务器)并不是消磨时间的好方法。
我在 SO 上阅读的大多数主题都表明您确实想要一个自包含的 .war 文件。在这种情况下,它仅与 1 个 .war 文件共享。不确定这是否可以通过部署描述符中的某种库引用来实现。
根据Java EE Spec,您的 .jar 应该部署到WEB-INF/lib
您的 WAR 文件中。我见过一些人破解 Tomcat 类加载器以直接从外部提取(尤其是在 Tomcat 5+ 删除对CATALINA_HOME/shared/lib
.
我建议查看更改您的部署过程而不是更改代码。您实际上可以进行“爆炸 WAR”部署appBase
(请参阅Tomcat 文档),并且只传输已更改的文件。
我为Inedo工作,我看到很多用户使用 BuildMaster 来做这件事。工作流程如下所示:
最后一步(Deploy Build Artifact)将仅部署更改的文件,这将大大减少部署 50MB 工件所需的时间。