カテゴリ: 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
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
Play Framework
Play FrameworkでCSSやJavaScriptを読み込む方法を徹底解説!静的リソースの組み込みガイド
No.5
Java&Spring記事人気No5
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.6
Java&Spring記事人気No6
Play Framework
Play Frameworkで多言語対応(i18n)を徹底解説!Twirlテンプレートでの使い方
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta EEの標準仕様とAPI一覧を完全解説!初心者でもわかるエンタープライズJavaの基本