【发布时间】:2013-01-09 16:13:59
【问题描述】:
我们正在使用 jboss 7 和 jboss-as-maven-plugin 来自动部署我们的战争文件。我们有一个 web.xml,其 contextRoot 设置为我们的应用程序名称。在插件中,我们将文件名配置为 ${project.build.finalName}.${project.packaging}。它部署得很好,但问题是当我们更改发布号时我们的战争文件名发生更改。
例如,当我们准备发布下一个版本时,战争从 myproject-v1.0.1.war 更改为 myproject-v1.0.2.war。问题是当 maven jboss 插件运行并尝试部署 war 文件时。注意我们已将 force 设置为 true,因此它应该取消部署旧应用程序并部署新应用程序。
问题是在确定应用程序当前是否已部署时,它似乎关闭了 war 文件名而不是 webContext。所以新版本无法部署,因为旧版本仍在运行。我们必须进入并手动取消部署以前的版本,然后重新部署。旧应用程序的强制取消部署似乎是基于战争名称,并且由于版本号发生变化,它认为它没有部署并让旧版本运行。这会导致它失败,因为 webContext 已被使用。
我们尝试将插件中的配置更改为通用的并且可以正常工作(运行时名称和名称显示此名称,而不是战争文件名)。但唯一的问题是这似乎会影响 jboss 上的某些东西,虽然它说它部署的 webContext 无效,我们无法访问我们的应用程序。这很奇怪,因为 webContext 是在 web.xml 中设置的,但插件中的配置似乎有些破坏它。
【问题讨论】: