jenkins重新部署战争之前自动启动停止远程tomcat(部署插件)

时间:2012-02-03 11:35:00

标签: windows tomcat jenkins web-deployment

目前jenkins构建了我的项目,最后通过jenkins deploy插件将工件部署在远程tomcat上。 问题是,在多次重新部署之后,此过程失败(有时tomcat挂起或(un)部署失败)。在所有情况下停止tomcat和手动取消部署有帮助。

有没有办法在构建/部署之前停止tomcat,删除旧的war和appfolder,并在deploy plugin想要部署工件之前重启tomcat?

事先提前

2 个答案:

答案 0 :(得分:2)

您可以编写一个批处理文件来完成上述所有操作:

  • 停止tomcat
  • 删除战争文件
  • 再次启动tomcat

然后,您可以在作业配置中添加新的前/后构建任务作为执行批处理,只需将其指向运行批处理文件。

添加了: 您可以使用PsExec - http://technet.microsoft.com/en-us/sysinternals/bb897553它允许您远程运行进程。将批处理放在远程计算机上,使用Jenkins运行本地程序,如下所示:PsExec.exe \ xx.xx.x.x C:\ MyScript.bat

答案 1 :(得分:1)

接受答案的一个补充: 重新路由PsExec调用的输出和错误输出很重要(花了我2天的调试时间)。见http://jenkins.361315.n4.nabble.com/remotely-executing-commands-td3476417.html

似乎从java调用(如jenkins / tomcat)或.net PsExec挂起或退出时出错。所以电话应该是这样的:

c:\someBatchWithPsExec.bat >>log.txt>&1

或明确地每次通话:

PsExec.exe -u [domain \ remoteuser] -p [密码] / accepteula \ remoteMachine net [停止|开始] Tomcat7>> log.txt>& 1

我想如果jenkins运行域\用户你不必在命令中提及它?! (只是尝试过但它没有用 - 网络命令失败)