カテゴリ: Jakarta EE 更新日: 2025/12/09

PayaraやWildFlyへのデプロイを自動化!Jakarta EEアプリをMavenで簡単デプロイする方法

Payara/WildFlyとのデプロイ自動化(Mavenプラグイン)
Payara/WildFlyとのデプロイ自動化(Mavenプラグイン)

先生と生徒の会話形式で理解しよう

生徒

「Jakarta EEアプリケーションって、毎回手動でPayaraやWildFlyにデプロイしないといけないんですか?」

先生

「いい質問ですね。実は、Mavenのプラグインを使えば、PayaraやWildFlyへのデプロイを自動化できますよ。」

生徒

「おお、それは便利そうですね!どうやって設定するんですか?」

先生

「それでは、PayaraとWildFlyでのデプロイ自動化の方法を順番に見ていきましょう。」

1. Mavenプラグインでデプロイを自動化する理由

1. Mavenプラグインでデプロイを自動化する理由
1. Mavenプラグインでデプロイを自動化する理由

Jakarta EEで開発したアプリケーションをPayaraやWildFlyなどのアプリケーションサーバーにデプロイする際、毎回管理画面やCLIを使って手動で行うのは手間がかかります。特に開発中は、頻繁にWARファイルを更新してテストしたくなる場面が多いため、デプロイ作業の自動化は非常に重要です。

Mavenプラグインを使えば、ビルドと同時にサーバーへデプロイできるため、効率的な開発が実現します。

2. Payaraへの自動デプロイ(payara-micro-maven-plugin)

2. Payaraへの自動デプロイ(payara-micro-maven-plugin)
2. Payaraへの自動デプロイ(payara-micro-maven-plugin)

Payaraには専用のMavenプラグイン「payara-micro-maven-plugin」が用意されており、WARファイルのビルドと同時にPayara Microでの起動・デプロイが可能です。以下に基本的な設定例を示します。


<plugin>
    <groupId>fish.payara.maven.plugins</groupId>
    <artifactId>payara-micro-maven-plugin</artifactId>
    <version>1.0.1</version>
    <executions>
        <execution>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <payaraVersion>6.2023.2</payaraVersion>
        <deployWar>true</deployWar>
        <warFile>${project.build.directory}/${project.build.finalName}.war</warFile>
    </configuration>
</plugin>

この設定により、Mavenのmvn payara-micro:startコマンドでアプリケーションを起動し、自動でWARをデプロイできます。

3. WildFlyへの自動デプロイ(wildfly-maven-plugin)

3. WildFlyへの自動デプロイ(wildfly-maven-plugin)
3. WildFlyへの自動デプロイ(wildfly-maven-plugin)

WildFlyでもwildfly-maven-pluginを使ってWARのデプロイを自動化できます。こちらはWildFlyの管理インターフェース(HTTP)を利用して、デプロイやアンデプロイを実行します。


<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <version>4.1.0.Final</version>
    <configuration>
        <hostname>localhost</hostname>
        <port>9990</port>
        <username>admin</username>
        <password>admin123</password>
    </configuration>
</plugin>

上記設定を行った後、以下のようにMavenコマンドでWARをデプロイできます。


mvn wildfly:deploy

アンデプロイや再デプロイもコマンド1つで簡単に実行できます。


mvn wildfly:undeploy
mvn wildfly:redeploy

4. Jakarta EEアプリケーションでのWARビルド設定

4. Jakarta EEアプリケーションでのWARビルド設定
4. Jakarta EEアプリケーションでのWARビルド設定

MavenでJakarta EEプロジェクトをビルドする際は、warパッケージタイプを明示しておく必要があります。以下は基本的なpom.xmlの一例です。


<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>jakarta.platform</groupId>
        <artifactId>jakarta.jakartaee-api</artifactId>
        <version>10.0.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

この設定により、WARファイルが正しく生成され、サーバーにデプロイ可能な形でビルドされます。

5. 自動デプロイに必要なサーバー設定

5. 自動デプロイに必要なサーバー設定
5. 自動デプロイに必要なサーバー設定

自動デプロイを成功させるには、PayaraやWildFly側で次のような設定が必要です。

  • Payara Microの場合:特別な設定は不要で、MavenプラグインがPayara Microと連携します。
  • WildFlyの場合:管理ユーザーの追加(add-user.sh)と、管理ポートの解放が必要です。

セキュリティ上、WildFlyの管理インターフェースに外部からアクセス可能な設定にする場合は、IP制限などを行うことをおすすめします。

6. Mavenプロファイルを使って環境ごとに切り替え

6. Mavenプロファイルを使って環境ごとに切り替え
6. Mavenプロファイルを使って環境ごとに切り替え

本番環境・開発環境など、サーバーが複数ある場合は、Mavenのプロファイル機能を使って切り替えが便利です。以下は例です。


<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <server.host>localhost</server.host>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <server.host>192.168.1.100</server.host>
        </properties>
    </profile>
</profiles>

そして、WildFlyプラグインのhostname${server.host}を使えば、環境ごとの切り替えが簡単になります。

7. JenkinsやCIツールと連携する準備

7. JenkinsやCIツールと連携する準備
7. JenkinsやCIツールと連携する準備

Mavenでのデプロイ自動化ができるようになると、JenkinsやGitHub ActionsなどのCIツールと組み合わせて、コミット時に自動ビルド・自動デプロイを行うこともできます。

本記事ではJenkinsの具体的な設定までは扱いませんが、今回のMavenプラグイン設定がその土台となります。

8. エラー対策:よくある失敗とその解決策

8. エラー対策:よくある失敗とその解決策
8. エラー対策:よくある失敗とその解決策

Mavenで自動デプロイを行う際に起きやすいエラーとその対処法を紹介します。

  • WildFlyの管理ユーザー認証エラー:add-user.shでユーザーを作成し、standalone.xmlの管理ポート確認を忘れずに。
  • WARファイルが見つからない: → Mavenビルドで正しくwarファイルが生成されているか確認しましょう。
  • ポートが開いていない: → Windowsのファイアウォールや、Linuxのiptables設定などで管理ポートがブロックされていないか確認。

まとめ

まとめ
まとめ

今回の内容では、Jakarta EEアプリケーションをPayaraやWildFlyへ効率よくデプロイするための具体的な方法を整理しました。特にMavenプラグインを活用することで、アプリケーションのビルドからデプロイまでを一連の流れとして自動化でき、開発工程を大幅に効率化できる点は非常に重要です。手動デプロイでは時間がかかりがちな処理も、Mavenプラグインを用いることでコマンド一つで実行でき、開発環境・本番環境を切り替えるプロファイル運用も柔軟です。さらに、Payara MicroやWildFlyの特性を理解することで、より安定したデプロイと運用が可能になります。 また、WARビルドの設定、サーバー側の管理ユーザー追加や管理ポート設定、エラー対策などもJakarta EE開発において欠かせない知識であり、安定したデプロイを行ううえで必要不可欠です。特にWildFlyにおいては管理ポートの解放やユーザー認証設定が重要であり、Payara Microでは簡易な自動連携が魅力です。これらの設定を正しく把握することで、デプロイ作業だけでなくCI環境との連携にもスムーズに発展させることができます。 以下に、自動デプロイ設定のイメージを再確認できるよう、簡易なサンプルコードを記載します。

サンプルプログラム:Payara Microへの自動デプロイ設定例


<plugin>
    <groupId>fish.payara.maven.plugins</groupId>
    <artifactId>payara-micro-maven-plugin</artifactId>
    <version>1.0.1</version>
    <executions>
        <execution>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <payaraVersion>6.2023.2</payaraVersion>
        <deployWar>true</deployWar>
        <warFile>${project.build.directory}/${project.build.finalName}.war</warFile>
    </configuration>
</plugin>

サンプルプログラム:WildFlyへの自動デプロイ設定例


<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <version>4.1.0.Final</version>
    <configuration>
        <hostname>${server.host}</hostname>
        <port>9990</port>
        <username>admin</username>
        <password>admin123</password>
    </configuration>
</plugin>

これらの設定を基盤にすることで、Jakarta EEアプリケーションのデプロイは一段と容易になります。特に複数環境を扱う現場では、Mavenプロファイルを活用した切り替えが有効であり、環境ごとの設定違いを吸収できます。さらに、CIツールとの連携が可能となれば、コミットをトリガーとして自動ビルド・自動デプロイが実現し、より一層スムーズな開発体制を整えることができます。これらは継続的な品質向上と安定した運用のための基盤となり、Jakarta EEを活用したアプリケーション開発の生産性向上につながるでしょう。

先生と生徒の振り返り会話

生徒

「今日の内容で、Mavenを使ってPayaraやWildFlyに自動でデプロイできる理由がよく分かりました!ビルドと同時にデプロイできるのはすごく便利ですね。」

先生

「その通りです。特にJakarta EEアプリケーションでは、何度もWARを作り直してテストするので、自動化すると作業負担が大幅に減ります。」

生徒

「WildFlyでは管理ユーザーやポート設定が必要なのも理解できました。Payara Microは設定が少ないのも魅力ですね。」

先生

「それぞれのサーバーに特徴がありますから、目的に応じて使い分けられるとさらに効率的です。CIツールと組み合わせれば自動デプロイの幅も広がりますよ。」

生徒

「Mavenプロファイルを使えば環境切り替えも簡単だし、実務でもすぐ使えそうです!もっと深く学んでいきたいです。」

先生

「ぜひ実践してみてください。経験を積むほど理解も深まり、より扱いやすくなりますよ。」

カテゴリの一覧へ
新着記事
New1
Play Framework
Play Frameworkでフォームデータをコントローラで扱う方法を完全解説|Java初心者向けコントローラ入門
New2
Jakarta EE
Jakarta EE JSPにおけるJSTLとスクリプトレットの違いと使い分けを初心者向けに徹底解説
New3
Play Framework
Play Frameworkでクエリパラメータをコントローラで処理する方法を完全解説|Java初心者向け入門
New4
Play Framework
Play FrameworkとSpring Bootの違いを徹底比較!初心者でもわかるJavaフレームワーク入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
No.2
Java&Spring記事人気No2
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.5
Java&Spring記事人気No5
Jakarta EE
Jakarta EE JSPにおけるJSTL国際化タグ(fmt:message)の使い方を初心者向けに完全解説
No.6
Java&Spring記事人気No6
Jakarta EE
Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセスをやさしく解説
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EE JSPでJSTLを使ったJSONやREST APIレスポンス処理を初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Play Framework
Play Frameworkでリクエストデータの受け取り方を完全解説|Java初心者向けコントローラ入門