6.3. 共有モジュールが含まれるアプリケーションのアンデプロイ
JBoss EAP 7.1 サーバーと Maven プラグインが変更されたため、アプリケーションをアンデプロイしようとすると以下のエラーが発生する可能性があります。このエラーは、アプリケーションに相互に対話または依存するモジュールが含まれると発生します。
WFLYCTL0184: New missing/unsatisfied dependencies
たとえば、アプリケーションに application-A
と application-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
このアンデプロイの動作はより適切で、デプロイメントが不安定な状態にならないようにします。