カテゴリ: Jakarta EE 更新日: 2026/02/04

Jakarta EEでマルチモジュールプロジェクトを構成する方法|MavenやGradleでの実践例

マルチモジュールプロジェクトの作り方
マルチモジュールプロジェクトの作り方

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

生徒

「Jakarta EEで開発を始めたいんですが、マルチモジュールプロジェクトって何ですか?」

先生

「良いテーマですね。Jakarta EEのようなエンタープライズアプリケーションでは、複数の機能を役割ごとに分割したマルチモジュール構成が一般的なんですよ。」

生徒

「機能ごとに分けると何かメリットがあるんですか?」

先生

「はい、保守性や再利用性が高まり、大規模なJakarta EEアプリでも効率的に開発・管理できるようになります。では実際に作り方を見ていきましょう!」

1. Jakarta EEにおけるマルチモジュール構成とは

1. Jakarta EEにおけるマルチモジュール構成とは
1. Jakarta EEにおけるマルチモジュール構成とは

Jakarta EEのようなJavaエンタープライズアプリケーションでは、プロジェクトを複数のモジュール(サブプロジェクト)に分割して構成することがよくあります。これを「マルチモジュールプロジェクト」と呼びます。代表的なビルドツールとしては、MavenGradleが使われます。

例えば、以下のようにモジュールを分けることで、機能ごとの分離が明確になり、Jakarta ServletやJakarta REST、EJB、JPAなどのコンポーネントを独立して管理しやすくなります。

  • webモジュール:Jakarta ServletやJSPを管理
  • serviceモジュール:ビジネスロジックを管理
  • domainモジュール:エンティティクラスやDTOなどを定義
  • persistenceモジュール:JPAやデータベースとの連携部分を担当

2. Mavenでのマルチモジュール構成の基本

2. Mavenでのマルチモジュール構成の基本
2. Mavenでのマルチモジュール構成の基本

Mavenでは、親プロジェクト(ルートプロジェクト)を定義し、その配下に複数の子モジュールを定義することでマルチモジュール構成を実現します。

以下は、Jakarta EEアプリケーションをMavenでマルチモジュール化する際の基本構成です。


my-jakartaee-app/
├── pom.xml(親)
├── domain/
│   └── pom.xml
├── service/
│   └── pom.xml
├── web/
│   └── pom.xml

親プロジェクトのpom.xmlでは、子モジュールを定義してまとめます。


<project>
  <packaging>pom</packaging>
  <modules>
    <module>domain</module>
    <module>service</module>
    <module>web</module>
  </modules>
</project>

3. Gradleでのマルチモジュールプロジェクト構成

3. Gradleでのマルチモジュールプロジェクト構成
3. Gradleでのマルチモジュールプロジェクト構成

GradleでもMavenと同様に、プロジェクトのルートディレクトリにsettings.gradleを定義し、サブプロジェクトを登録します。


rootProject.name = 'my-jakartaee-app'
include 'domain', 'service', 'web'

それぞれのモジュールでbuild.gradleを記述し、依存関係を明示的に設定します。例えば、serviceモジュールではdomainに依存する形になります。


dependencies {
    implementation project(':domain')
}

4. Jakarta EEのモジュール構成のポイント

4. Jakarta EEのモジュール構成のポイント
4. Jakarta EEのモジュール構成のポイント

Jakarta EEでマルチモジュールプロジェクトを構成する際には、次のような設計の工夫が重要です。

  • 依存関係の一方向化:web → service → domain というように、依存は一方向に設計しましょう。
  • 共通ライブラリの管理:ログ出力、ユーティリティクラスなどを共通モジュールにまとめると再利用しやすくなります。
  • 分離性と責務の明確化:各モジュールが独立して単体テストしやすくなるように設計するのがポイントです。

こうした構成を採用することで、Jakarta EEアプリケーションは開発効率・品質・保守性が格段に向上します。

5. Jakarta EEとマルチモジュールの組み合わせがもたらすメリット

5. Jakarta EEとマルチモジュールの組み合わせがもたらすメリット
5. Jakarta EEとマルチモジュールの組み合わせがもたらすメリット

Jakarta EEでは、多層アーキテクチャが前提となるケースが多いため、マルチモジュール構成との相性が抜群です。以下のようなメリットがあります。

  • 機能追加や変更時の影響範囲を限定できる
  • CI/CDでのビルド速度を改善できる(差分ビルド)
  • 単体テストの実行やデプロイ単位の管理が容易になる

例えば、Jakarta RESTful Web Services(JAX-RS)をwebモジュールに、JPAエンティティはdomainモジュールに、それぞれ分けることで、関心の分離を実現できます。

6. Jakarta EEで使える代表的なビルドツールと選び方

6. Jakarta EEで使える代表的なビルドツールと選び方
6. Jakarta EEで使える代表的なビルドツールと選び方

Jakarta EEのマルチモジュール構成で使われる代表的なビルドツールは以下のとおりです。

  • Maven:伝統的で安定性があり、XML構成が分かりやすい
  • Gradle:記述が簡潔で高速ビルドに対応、Kotlin DSLも使える

初心者やJakarta EEのドキュメントに忠実に進めたい方にはMavenが向いています。より柔軟性を重視したい場合はGradleを選ぶのも良いでしょう。

7. Jakarta EEとIDE(EclipseやIntelliJ)でのマルチモジュール操作

7. Jakarta EEとIDE(EclipseやIntelliJ)でのマルチモジュール操作
7. Jakarta EEとIDE(EclipseやIntelliJ)でのマルチモジュール操作

Eclipse IDEやIntelliJ IDEAでは、Jakarta EEのマルチモジュール構成に対応しています。Eclipseでは「Working Sets」機能を使うと見やすく整理できますし、IntelliJではGradle/Mavenの連携がシームレスに行えます。

どちらのIDEも、モジュール単位でのデプロイ、デバッグ、テストが可能です。特にPayaraやWildFlyなどのJakarta EE対応アプリケーションサーバと連携することで、実運用に近い開発体験が得られます。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Jakarta EE(ジャカルタEE)におけるマルチモジュールプロジェクトとは具体的にどのような構成のことですか?

Jakarta EEにおけるマルチモジュールプロジェクトとは、一つの大きなJavaエンタープライズアプリケーションを、役割や機能ごとに複数の小さな「モジュール(サブプロジェクト)」に分割して管理・開発する構成のことです。従来のシステム開発では、すべてのプログラムを一箇所にまとめるモノリスなプロジェクト構成が一般的でしたが、Jakarta EEのような大規模な開発現場では、保守性や再利用性を高めるために、Maven(メイヴン)やGradle(グレードル)といったビルドツールを活用して、プロジェクトを構造化します。具体的には、画面表示を担当するウェブモジュール、ビジネスロジックを記述するサービスモジュール、データベースのテーブルに対応するドメインモジュールなどに切り分け、それぞれの責務を明確に分ける手法を指します。
カテゴリの一覧へ
新着記事
New1
Play Framework
Play Frameworkのフォーム処理完全ガイド!メールアドレス・電話番号の形式チェック
New2
Jakarta EE
Jakarta EE JSFカスタムコンポーネントとは?初心者向けに基礎から徹底解説【Jakarta Faces・Webアプリ開発】
New3
Play Framework
Play Frameworkのフォーム処理を完全ガイド!文字数制限と正規表現バリデーション
New4
Jakarta EE
Jakarta EEのJSFマネージドBean入門!Jakarta Facesで学ぶ基本と役割を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta サーブレットのdoGetとdoPostの違いと使い分けを徹底解説!初心者でもわかるHTTPリクエスト処理
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkで学ぶ単純なフォーム作成方法!初心者でもわかる名前・メールアドレス入力
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
No.4
Java&Spring記事人気No4
Play Framework
Play FrameworkのUI設計を最適化!Twirlテンプレートのベストプラクティス
No.5
Java&Spring記事人気No5
Play Framework
Play Frameworkのデータバインディングを完全解説!初心者でもわかるフォーム入力と自動変換の仕組み
No.6
Java&Spring記事人気No6
Play Framework
Play FrameworkのForm APIを完全解説!初心者でもわかるフォーム処理の流れ
No.7
Java&Spring記事人気No7
Play Framework
Play Frameworkのフォーム処理を完全ガイド!文字数制限と正規表現バリデーション
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方