6.3. 共有モジュールが含まれるアプリケーションのアンデプロイ

JBoss EAP 7.1 サーバーと Maven プラグインが変更されたため、アプリケーションをアンデプロイしようとすると以下のエラーが発生する可能性があります。このエラーは、アプリケーションに相互に対話または依存するモジュールが含まれると発生します。

WFLYCTL0184:    New missing/unsatisfied dependencies

たとえば、アプリケーションに application-Aapplication-B の 2 つの Maven WAR プロジェクトモジュールが含まれ、これらのモジュールは data-sharing モジュールが管理するデータを共有するとします。

このアプリケーションをデプロイする場合、最初に共有された data-sharing モジュールをデプロイした後、そのモジュールに依存するモジュールをデプロイする必要があります。デプロイメントの順番は、親の pom.xml ファイルの <modules> 要素に指定されます。これは、JBoss EAP 6.4 から 7.2 まで該当します。

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

このアンデプロイの動作はより適切で、デプロイメントが不安定な状態にならないようにします。