在没有 Tomcat 管理器的情况下从 jenkins 自动部署战争文件

Posted

技术标签:

【中文标题】在没有 Tomcat 管理器的情况下从 jenkins 自动部署战争文件【英文标题】:Auto-Deploy war file from jenkins without Tomcat's Manager 【发布时间】:2015-12-07 18:46:00 【问题描述】:

我想构建一个自动脚本或等效于通过 jenkins 将战争文件自动部署到 tomcat 服务器的东西。未启用 tomcat 管理器,因此“部署到容器插件”几乎没有,因为它需要管理器处于活动状态。目前我正在通过scp将war文件推送到tomcat,但是tomcat似乎在每次尝试时都会崩溃。我还尝试了 maven-tomcat-deploy 替代方案,它也需要 tomcat 的管理器处于活动状态。还有其他方法可以将战争文件自动部署到我的 tomcat 吗?

【问题讨论】:

【参考方案1】:

据我所知,您需要管理员上传战争或复制它。

如果 Tomcat 在重新部署后崩溃,我会检查是否没有从 Tomcat 类加载器加载其类的实例到应用程序类加载器加载其类的实例的引用。 当 GC 启动对您的应用程序加载实例的引用时,该类会导致类,该类又会导致类加载器引用所有类。所以GC无法清除它们占用的内存。

我遇到的大多数(如果不是全部)Tomcat 重新部署失败的问题都是由这种引用问题引起的。因此,旧部署将保留在内存中,尽管它不会发生任何事情。您可以增加分配的内存,但这只会推迟崩溃。

【讨论】:

在部署前关闭 tomcat 并在传输完成后重新启动它? 可以在tomcat关闭的情况下删除应用,然后复制新版本。但是,在运行自动化测试或在未重新启动生产环境的情况下部署时,这种停机时间可能会很烦人。

以上是关于在没有 Tomcat 管理器的情况下从 jenkins 自动部署战争文件的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在不使用图像选择器的情况下从照片应用程序呈现默认的 iOS 编辑视图?

android:在不使用 pdf 查看器的情况下从我的应用程序打开 pdf

使用启用了安全管理器的 Tomcat 时,在类路径中找不到属性文件

在没有管理员权限的情况下从 C# 使用 Git-bash

linux开发环境搭建---tomcat---jenkis---svn

是否可以在没有画布的情况下从 ImageBitMap Web 对象中获取像素?