1

我想知道是否有办法将所有需要的 .jars 放在单独的 .war/ear 中,这样当我对代码进行微小更改时,我就不必将所有库 .jars 部署到服务器上?

因为每次我想测试更改/在开发期间上传 50mb(到越位 Tomcat 服务器)并不是消磨时间的好方法。

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

4

1 回答 1

0

根据Java EE Spec,您的 .jar 应该部署到WEB-INF/lib您的 WAR 文件中。我见过一些人破解 Tomcat 类加载器以直接从外部提取(尤其是在 Tomcat 5+ 删除对CATALINA_HOME/shared/lib.

我建议查看更改您的部署过程而不是更改代码。您实际上可以进行“爆炸 WAR”部署appBase(请参阅Tomcat 文档),并且只传输已更改的文件。

我为Inedo工作,我看到很多用户使用 BuildMaster 来做这件事。工作流程如下所示:

  1. 从 $/MyApp 获取最新信息
  2. 运行 Ant (build.xml)
  3. 解压 MyApp.war
  4. 创建构建工件
  5. 停止 Tomcat 服务
  6. 将构建工件部署到服务器 (/path/appBase)
  7. 启动Tomcat服务

最后一步(Deploy Build Artifact)将仅部署更改的文件,这将大大减少部署 50MB 工件所需的时间。

于 2013-09-02T15:45:56.620 回答