【问题标题】:Re-deploying a "versioned" war file from Jenkins to Tomcat fails将“版本化”战争文件从 Jenkins 重新部署到 Tomcat 失败
【发布时间】:2015-01-06 20:10:55
【问题描述】:

我正在使用 Jenkins 部署插件来部署到 Tomcat。生成的 .war 文件使用以下格式命名:MyApp##[version].[buildnumber].war

例如,war文件将生成为:MyApp##alpha.13.war

文件名中有哈希的原因是Tomcat manager html页面在部署的应用程序的版本列中列出版本。这样,我们可以仔细检查当前部署到 Tomcat 的版本。

现在当第二次尝试通过 Jenkins 进行部署时,内部版本号明显增加。所以会生成上面的war文件,文件名是:MyApp##alpha.14.war

现在失败,但出现以下异常:

部署 C:\Users\davidr.jenkins\jobs\Task Form Builder (主干)\workspace\target\TaskFormBuilder##alpha.21.war 到容器 Tomcat 7.x 远程重新部署 [C:\Users\davidr.jenkins\jobs\Task 表单生成器(主干)\workspace\target\TaskFormBuilder##alpha.21.war]
取消部署 [C:\Users\davidr.jenkins\jobs\Task Form Builder (主干)\workspace\target\TaskFormBuilder##alpha.21.war] 错误: 发布者 hudson.plugins.deploy.DeployPublisher 中止由于 异常 org.codehaus.cargo.container.ContainerException: 失败 取消部署 [C:\Users\davidr.jenkins\jobs\Task Form Builder (主干)\workspace\target\TaskFormBuilder##alpha.21.war] 在 org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:140) 在 org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:178) 在 hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73) 在 hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116) 在 hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103) 在 hudson.FilePath.act(FilePath.java:919) 在 hudson.FilePath.act(FilePath.java:897) 在 hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103) 在 hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61) 在 hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 在 hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770) 在 hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734) 在 hudson.model.Build$BuildExecution.post2(Build.java:183) 在 hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683) 在 hudson.model.Run.execute(Run.java:1784) 在 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 在 hudson.model.ResourceController.execute(ResourceController.java:89) 在 hudson.model.Executor.run(Executor.java:240) 引起: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: 失败 - 路径 /TaskFormBuilder##alpha.21 不存在上下文

在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:566) 在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:480) 在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.undeploy(TomcatManager.java:420) 在 org.codehaus.cargo.container.tomcat.Tomcat7xRemoteDeployer.performUndeploy(Tomcat7xRemoteDeployer.java:62) 在 org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:130) ... 17 更多 org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: 失败 - 路径 /TaskFormBuilder##alpha.21 不存在上下文

在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:566) 在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:480) 在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.undeploy(TomcatManager.java:420) 在 org.codehaus.cargo.container.tomcat.Tomcat7xRemoteDeployer.performUndeploy(Tomcat7xRemoteDeployer.java:62) 在 org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:130) 在 org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:178) 在 hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73) 在 hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116) 在 hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103) 在 hudson.FilePath.act(FilePath.java:919) 在 hudson.FilePath.act(FilePath.java:897) 在 hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103) 在 hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61) 在 hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 在 hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770) 在 hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734) 在 hudson.model.Build$BuildExecution.post2(Build.java:183) 在 hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683) 在 hudson.model.Run.execute(Run.java:1784) 在 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 在 hudson.model.ResourceController.execute(ResourceController.java:89) 在 hudson.model.Executor.run(Executor.java:240) 完成:失败

任何人都可以协助如何让 Jenkins 使用 tomcats 建议的命名约定(使用哈希指定版本)将战争文件重新部署到 Tomcat 吗?

【问题讨论】:

  • 您是否找到了此查询的解决方案。

标签: tomcat jenkins jenkins-plugins


【解决方案1】:

我想你会发现部署确实有效,它只是报告错误。

这是部署插件或货物代码中的错误,请参阅 JIRA 问题https://issues.jenkins-ci.org/browse/JENKINS-19564

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-28
    • 2016-09-19
    • 1970-01-01
    • 2015-04-16
    • 2016-10-29
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    相关资源
    最近更新 更多