在没有 Tomcat 的管理器的情况下从 jenkins 自动部署 war 文件
Auto-Deploy war file from jenkins without Tomcat's Manager
我想构建一个自动脚本或等同于通过 jenkins 将 war-files 自动部署到 tomcat-server 的东西。 tomcat 管理器未启用,因此 "Deploy to container Plugin" 几乎是一个错误,因为它需要管理器处于活动状态。目前,我正在通过 scp 将 war 文件推送到 tomcat,但是 tomcat 似乎每次尝试都会崩溃。我还尝试了 maven-tomcat-deploy 替代方案,它也需要 tomcat 的管理器处于活动状态。是否有另一种方法可以将 war 文件自动部署到我的 tomcat?
据我所知,您需要管理员上传 war 或复制它。
如果 Tomcat 在重新部署后崩溃,我会检查是否没有来自 class 的实例的引用由 Tomcat classloader 加载的实例它的 class 由您的应用程序 class 加载程序加载。
当 GC 启动对应用程序加载实例的引用时,会导致 class 进而导致引用所有 classes 的 classloader。所以GC无法清除他们占用的内存。
我在 Tomcat 重新部署失败时遇到的大多数(如果不是全部)问题都是由此类引用问题引起的。因此,旧的部署将保留在内存中,尽管它不会发生任何事情。您可以增加分配的内存,但这只会推迟崩溃。
我想构建一个自动脚本或等同于通过 jenkins 将 war-files 自动部署到 tomcat-server 的东西。 tomcat 管理器未启用,因此 "Deploy to container Plugin" 几乎是一个错误,因为它需要管理器处于活动状态。目前,我正在通过 scp 将 war 文件推送到 tomcat,但是 tomcat 似乎每次尝试都会崩溃。我还尝试了 maven-tomcat-deploy 替代方案,它也需要 tomcat 的管理器处于活动状态。是否有另一种方法可以将 war 文件自动部署到我的 tomcat?
据我所知,您需要管理员上传 war 或复制它。
如果 Tomcat 在重新部署后崩溃,我会检查是否没有来自 class 的实例的引用由 Tomcat classloader 加载的实例它的 class 由您的应用程序 class 加载程序加载。 当 GC 启动对应用程序加载实例的引用时,会导致 class 进而导致引用所有 classes 的 classloader。所以GC无法清除他们占用的内存。
我在 Tomcat 重新部署失败时遇到的大多数(如果不是全部)问题都是由此类引用问题引起的。因此,旧的部署将保留在内存中,尽管它不会发生任何事情。您可以增加分配的内存,但这只会推迟崩溃。