tomcat - 部署:将库 jar 与我自己的类分开

标签 tomcat deployment war ear

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

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

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

最佳答案

根据Java EE Spec ,您的 .jars 应该部署到 WAR 文件中的 WEB-INF/lib。我见过一些人破解 Tomcat 类加载器以直接从外部拉取(尤其是在 Tomcat 5+ 删除了对 CATALINA_HOME/shared/lib 的支持之后),但这有其明显的缺点。

我建议考虑更改您的部署过程而不是更改代码。您实际上可以对 appBase 进行“分解的 WAR”部署(参见 Tomcat docs ),并且只传输已更改的文件。

我为 Inedo 工作,而且我看到很多用户使用 BuildMaster 执行此操作.工作流程看起来像这样:

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

最后一步(部署构建工件)将只部署更改的文件,这将大大减少部署 50MB 工件所需的时间。

关于tomcat - 部署:将库 jar 与我自己的类分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18505321/

相关文章:

jsp :include 处的 Tomcat MemoryRealm 身份验证

.net - 自动更新框架/引擎

tomcat - 在 aws apache tomcat 上部署并运行 war 文件

maven - 如何使用 Maven 仅对一个属性进行过滤

java - 使用7Zip制作WAR文件

tomcat - 如何在 Jelastic 中启用 Tomcat Web 应用程序管理器?

java - 无法打开类路径资源 [default/jdbc.properties],因为它不存在

jsp - 如何使用MyEclipse Tomcat实现HTTPS访问?

ruby-on-rails-3 - Assets 未在 Rails 应用程序的生产中加载

java - 如何在Java中实现自动更新?