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

JenkinsとMavenでJakarta EEアプリを自動デプロイ!CI/CDパイプラインを構築する基本

JenkinsとMavenのCI/CD連携
JenkinsとMavenのCI/CD連携

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

生徒

「Jakarta EEのアプリを作ったんですが、手動でビルドしてデプロイするのが面倒なんです…」

先生

「その場合は、JenkinsとMavenを使ってCI/CDの仕組みを作ると便利ですよ。ビルドからデプロイまで自動化できます。」

生徒

「CI/CDって聞いたことありますけど、どうやってJakarta EEと連携するんですか?」

先生

「それでは、JenkinsとMavenでJakarta EEアプリケーションのCI/CDパイプラインを構築する方法を一緒に見ていきましょう。」

1. Jakarta EEとCI/CDの基礎を知ろう

1. Jakarta EEとCI/CDの基礎を知ろう
1. Jakarta EEとCI/CDの基礎を知ろう

Jakarta EEはエンタープライズ向けのJavaアプリケーションを開発するための標準仕様です。多くの場合、PayaraやWildFlyのようなアプリケーションサーバーにデプロイして運用します。

CI/CDとは、継続的インテグレーション(Continuous Integration)継続的デリバリー(Continuous Delivery)の略で、ソースコードの変更を自動でビルド・テスト・デプロイまで繋げる仕組みのことです。Jakarta EEプロジェクトでも、これを導入することで開発の効率化が図れます。

2. Jenkinsとは?CI/CDに欠かせない自動化ツール

2. Jenkinsとは?CI/CDに欠かせない自動化ツール
2. Jenkinsとは?CI/CDに欠かせない自動化ツール

JenkinsはJavaで作られたオープンソースの自動化サーバーで、ビルド、テスト、デプロイといった一連の作業を自動化できます。Jakarta EEのプロジェクトでも、JenkinsとMavenを組み合わせて、WARファイルのビルドからアプリケーションサーバーへのデプロイまでを自動化することが可能です。

3. Jakarta EEのMavenプロジェクトを用意しよう

3. Jakarta EEのMavenプロジェクトを用意しよう
3. Jakarta EEのMavenプロジェクトを用意しよう

まずは、Jakarta EE対応のMavenプロジェクトを用意します。pom.xmlに以下のような依存関係を設定します。


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

<packaging>war</packaging>

この構成により、Jenkins上でmvn packageを実行すればWARファイルが自動で生成されるようになります。

4. Jenkinsジョブの作成と設定

4. Jenkinsジョブの作成と設定
4. Jenkinsジョブの作成と設定

Jenkinsをインストールしたら、以下の手順でジョブ(パイプライン)を作成します。

  • 「新規ジョブ作成」から「フリースタイル・プロジェクト」を選択
  • ソースコード管理でGitリポジトリを指定
  • ビルド手順で「Mavenのビルド」を追加
  • ゴールとオプションにclean packageを指定

この設定により、GitのリポジトリからJakarta EEのソースコードを取得し、Mavenでビルドできます。

5. Jenkinsでの自動デプロイ設定(Payara編)

5. Jenkinsでの自動デプロイ設定(Payara編)
5. Jenkinsでの自動デプロイ設定(Payara編)

Jenkinsのビルド後のステップで、生成されたWARファイルをPayaraのautodeployディレクトリにコピーすることで、自動デプロイが可能です。

ビルド後の操作で「シェルの実行」などを選び、以下のようなスクリプトを記述します。


cp target/*.war /opt/payara5/glassfish/domains/domain1/autodeploy/

この処理によって、WARファイルがPayaraに自動反映されます。

6. JenkinsとWildFlyでのデプロイ

6. JenkinsとWildFlyでのデプロイ
6. JenkinsとWildFlyでのデプロイ

WildFlyの場合は、jboss-cli.shを使ったコマンドで自動デプロイを行うことができます。以下はその一例です。


/opt/wildfly/bin/jboss-cli.sh --connect --command="deploy /var/lib/jenkins/workspace/myapp/target/myapp.war --force"

Jenkinsのビルド後のステップにこのコマンドを入れることで、WARファイルがWildFlyに即時デプロイされるようになります。

7. JenkinsパイプラインでCI/CDをコード管理

7. JenkinsパイプラインでCI/CDをコード管理
7. JenkinsパイプラインでCI/CDをコード管理

さらに発展的な方法として、Jenkinsfileというスクリプト形式でCI/CDの流れを管理する方法があります。以下は簡単な例です。


pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/your-repo/jakarta-ee-project.git'
            }
        }
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Deploy') {
            steps {
                sh 'cp target/*.war /opt/payara5/glassfish/domains/domain1/autodeploy/'
            }
        }
    }
}

このようにコードでCI/CDパイプラインを定義しておくと、JenkinsのGUIに依存せずに、再利用性の高い構成が可能になります。

8. Jakarta EEでCI/CDを活用するメリット

8. Jakarta EEでCI/CDを活用するメリット
8. Jakarta EEでCI/CDを活用するメリット

Jakarta EEのようなエンタープライズ向けアプリケーションでは、CI/CDを導入することで次のようなメリットがあります。

  • ビルド・テスト・デプロイの作業がすべて自動化され、ミスが減る
  • コードの変更がすぐ反映され、テストや確認がスムーズ
  • 開発チームの作業が標準化され、品質の維持がしやすくなる

JenkinsとMavenは、その構築を支える強力なツールです。

カテゴリの一覧へ
新着記事
New1
Jakarta EE
Jakarta EEとクラウドネイティブ開発の相性とは?初心者向けにわかりやすく解説
New2
Jakarta EE
JakartaEE JSPのリクエスト属性とスコープの基本を徹底解説!初心者向け入門ガイド
New3
Play Framework
Play Frameworkのビューテストを徹底解説!Twirlテンプレートの品質を高める方法
New4
Jakarta EE
JakartaEE フィルタで認証と認可を実装する方法を初心者向けに解説!サーブレットのセキュリティ入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkのビューを共通化!テンプレート間のインクルード方法を徹底解説
No.3
Java&Spring記事人気No3
Play Framework
Play Frameworkプロジェクト作成直後にやるべき初期設定ガイド!初心者でも安心
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.5
Java&Spring記事人気No5
Play Framework
Play FrameworkでCSSやJavaScriptを読み込む方法を徹底解説!静的リソースの組み込みガイド
No.6
Java&Spring記事人気No6
Play Framework
Play Frameworkで多言語対応(i18n)を徹底解説!Twirlテンプレートでの使い方
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEの標準仕様とAPI一覧を完全解説!初心者でもわかるエンタープライズJavaの基本
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識