团队城市:无法重新部署到 Tomcat7

Team City: Cannot Redeploy to Tomcat7

我有一个使用 Team City 部署程序插件的构建配置。 我正在使用容器部署将 war 文件部署到 Tomcat.7.0.63 作为服务安装在 Windows Server 2012 R2 机器上。 我第一次 运行 构建时,工件(war file_ 部署成功。 第二次以及所有后续 运行 次,部署失败。

错误信息:

Build failure message received: org.codehaus.cargo.container.ContainerException: Failed to undeploy

日志文件错误:

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Unable to delete

当我转到远程服务器上的 webapps 文件夹时,war 文件被删除,但展开的文件夹只被部分删除。大多数文件都不见了,除了 png 文件。 我无法手动删除该文件夹,因为 Tomcat 仍然锁定它。 如果我重新启动 tomcat,我就能够 运行 构建成功(war 文件部署)。

我的一个想法是在每次部署之前或之后重新启动 Tomcat。 我将如何从 TeamCity 重新启动 Tomcat? 或者,有人对如何解决这个问题有建议吗?

您可以使用 antiResourceLocking 选项配置 Tomcat 上下文,详见 online documentation。但是,这确实需要权衡取舍;绝对值得完整阅读文档并评估它是否适合您的应用程序。