6.3. 取消部署包括共享模块的应用
当您尝试取消部署应用时,JBoss EAP 7.1 服务器和 Maven 插件的更改可能会导致以下故障:如果您的应用包含相互交互或依赖的模块,则可能会出现此错误。
WFLYCTL0184: New missing/unsatisfied dependencies
例如,假设您有一个包含两个 Maven WAR 项目模块 application-A 和 ,该模块共享由 application- B 的应用data-sharing 模块管理的数据。
当您部署此应用程序时,您必须首先部署 共享数据共享 模块,然后部署依赖于它的模块。部署顺序在父 pom.xml 文件的 <modules> 元素 中指定。在 JBoss EAP 6.4 到 JBoss EAP 7.3 中也是如此。
在 JBoss EAP 7.1 之前的版本中,您可以使用以下命令从父项目的根目录取消部署此应用的所有存档:
$ mvn wildfly:undeploy
在 JBoss EAP 7.1 及更高版本中,您必须首先取消部署使用共享模块的存档,然后取消部署共享模块。由于无法在项目 pom.xml 文件中指定未部署顺序,您必须手动取消部署这些模块。您可以从父目录的根目录运行以下命令来完成此操作:
$ mvn wildfly:undeploy -pl application-A,application-B
$ mvn wildfly:undeploy -pl data-shared
这个新的 undeploy 行为更为正确,并确保您不会处于不稳定的部署状态。