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

GitHub ActionsでJakarta EEアプリを自動ビルド!初心者でもできるCI設定の基本

GitHub ActionsでJakarta EEアプリを自動ビルド
GitHub ActionsでJakarta EEアプリを自動ビルド

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

生徒

「GitHubにJakarta EEのコードを上げたんですけど、自動でビルドってできますか?」

先生

「できますよ。GitHub Actionsを使えば、Jakarta EEのアプリケーションを自動ビルドできます。」

生徒

「GitHub Actionsって難しそう…どうやって設定するんですか?」

先生

「大丈夫、YAMLファイルを一つ用意するだけで、CIが簡単に動かせますよ。一緒にやってみましょう!」

1. GitHub Actionsとは?

1. GitHub Actionsとは?
1. GitHub Actionsとは?

GitHub Actionsは、GitHubが提供するCI/CDツールです。リポジトリにコードをプッシュしたり、プルリクエストを作成したりしたタイミングで、自動でビルド・テスト・デプロイなどの処理を実行できます。

Jakarta EEのようなJavaエンタープライズアプリケーションでも、MavenやGradleと連携して、ソースコードのビルドやWARファイルの生成を自動化できます。

2. Jakarta EEアプリのMavenプロジェクトを準備

2. Jakarta EEアプリのMavenプロジェクトを準備
2. Jakarta EEアプリのMavenプロジェクトを準備

GitHub ActionsでJakarta EEアプリを自動ビルドするには、まずMavenで構成されたプロジェクトである必要があります。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>

この設定でmvn packageを実行すると、targetフォルダ内にWARファイルが生成されるようになります。

3. GitHub Actions用のワークフローファイルを作成

3. GitHub Actions用のワークフローファイルを作成
3. GitHub Actions用のワークフローファイルを作成

GitHub Actionsは、.github/workflowsディレクトリに配置されたYAMLファイルに従って動作します。まずは以下のようなファイルを作成してみましょう。


name: Build Jakarta EE App

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Set up JDK 17
      uses: actions/setup-java@v3
      with:
        java-version: '17'
        distribution: 'temurin'

    - name: Build with Maven
      run: mvn clean package

この設定により、mainブランチに変更が加わると、自動でMavenによるビルド処理が開始されます。

4. Jakarta EEに必要なJDKバージョンの指定

4. Jakarta EEに必要なJDKバージョンの指定
4. Jakarta EEに必要なJDKバージョンの指定

Jakarta EE 10では、Java 11や17が推奨されています。GitHub Actionsではsetup-javaアクションを使って、JDKのバージョンを指定することができます。

もし将来的にJavaのバージョンが上がっても、この設定を変更するだけで対応可能です。

5. ビルド結果(WARファイル)をアーティファクトとして保存

5. ビルド結果(WARファイル)をアーティファクトとして保存
5. ビルド結果(WARファイル)をアーティファクトとして保存

生成されたWARファイルをCIの成果物としてダウンロード可能にするには、次のステップを追加します。


    - name: Upload WAR artifact
      uses: actions/upload-artifact@v3
      with:
        name: jakartaee-app
        path: target/*.war

これにより、GitHubのActionsタブからWARファイルをダウンロードできるようになります。

6. 自動テストのステップを追加する

6. 自動テストのステップを追加する
6. 自動テストのステップを追加する

もしテストコードを含んでいる場合は、mvn testでユニットテストを実行するように設定しておくとよいでしょう。


    - name: Run Tests
      run: mvn test

テストが失敗した場合はその時点でCIが停止するため、品質チェックの自動化にも役立ちます。

7. GitHub ActionsのメリットとCIの導入効果

7. GitHub ActionsのメリットとCIの導入効果
7. GitHub ActionsのメリットとCIの導入効果

GitHub ActionsをJakarta EEアプリケーションに導入するメリットはたくさんあります。

  • コードをプッシュするだけで自動ビルドされ、開発効率が上がる
  • 環境のセットアップが不要で、どこでも同じようにビルドできる
  • WARファイルを自動生成してダウンロード可能にできる
  • CIによる品質チェックを自動化できる

これにより、手作業によるミスを減らしながら、チーム全体の開発スピードと信頼性を高めることができます。

8. Jakarta EEでCIを始める第一歩としておすすめ

8. Jakarta EEでCIを始める第一歩としておすすめ
8. Jakarta EEでCIを始める第一歩としておすすめ

GitHub Actionsは無料で使えるCI/CDツールとして、Jakarta EEの初心者にも非常におすすめです。特に、まだJenkinsなどのCIツールを導入していない場合や、小規模なプロジェクトであれば、GitHubだけで完結できるのが大きな魅力です。

Jakarta EEのプロジェクトにCI/CDの流れを取り入れる第一歩として、まずは自動ビルドから始めてみましょう。

カテゴリの一覧へ
新着記事
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初心者向けコントローラ入門