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

Jakarta EEプロジェクトのディレクトリ構成を理解しよう!初心者向け完全ガイド

Jakarta EEプロジェクトのディレクトリ構成を理解する
Jakarta EEプロジェクトのディレクトリ構成を理解する

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

生徒

「Jakarta EEでWebアプリを作ろうと思ってるんですが、プロジェクトのディレクトリ構成ってどうなってるんですか?」

先生

「良いところに目をつけましたね。Jakarta EEでは、プロジェクトの構成がアプリ開発の第一歩です。」

生徒

「どこに何を置けばいいのか、わからなくて混乱してしまって…」

先生

「それでは、Jakarta EEの標準的なディレクトリ構成と、Mavenを使った具体例を見ながら解説しましょう!」

1. Jakarta EEプロジェクトの基本構成を理解しよう

1. Jakarta EEプロジェクトの基本構成を理解しよう
1. Jakarta EEプロジェクトの基本構成を理解しよう

Jakarta EE(旧Java EE)では、Webアプリケーションを構築する際に一定のディレクトリ構成に従うのが一般的です。特にMavenやGradleのようなビルドツールを使う場合は、ディレクトリの場所や名前が重要になります。

ここでは、Jakarta EEの標準的なプロジェクト構造について、初心者でも理解できるように丁寧に説明していきます。

2. Mavenを使ったJakarta EEプロジェクトの構成例

2. Mavenを使ったJakarta EEプロジェクトの構成例
2. Mavenを使ったJakarta EEプロジェクトの構成例

以下は、Mavenを利用してJakarta EEアプリケーションを開発する際の代表的なディレクトリ構成です。


my-jakartaee-app/
├── src/
│   ├── main/
│   │   ├── java/           // Javaソースコード
│   │   ├── resources/      // 設定ファイル(properties, XMLなど)
│   │   └── webapp/         // HTML, JSP, WEB-INFなど
│   └── test/
│       └── java/           // 単体テストコード
├── target/                 // ビルド成果物(自動生成)
├── pom.xml                 // Mavenの設定ファイル

src/main/javaにはServletFilterControllerといったアプリのロジックが入ります。

src/main/webappにはindex.jspWEB-INF/web.xmlなど、WebアプリのUIや設定ファイルを配置します。

3. 各ディレクトリの役割とJakarta EEとの関係

3. 各ディレクトリの役割とJakarta EEとの関係
3. 各ディレクトリの役割とJakarta EEとの関係

それぞれのディレクトリには明確な役割があります。Jakarta EEはServletやJSP、JPA、CDIなど複数の仕様に対応しており、これらを正しい場所に配置することでアプリが正しく動作します。

  • java: Jakarta Servlet、EJB、RESTなどのJavaコードを配置
  • resources: CDI用のbeans.xmlやロギング設定ファイルを置く
  • webapp: HTML、JSP、JavaScript、CSSなどのUI関連リソースを配置
  • WEB-INF: web.xmlを置く特殊なディレクトリ。外部からアクセスできない

4. web.xmlとJakarta EEの連携

4. web.xmlとJakarta EEの連携
4. web.xmlとJakarta EEの連携

Jakarta EEのWebアプリでは、WEB-INF/web.xmlがアプリの入り口を定義する重要なファイルです。例えばServletのマッピングや起動時の初期化パラメータを記述します。


<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         version="5.0">

    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.example.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

</web-app>

このようにServletを登録し、URLパターンを設定することで、ブラウザからのリクエストを処理できます。

5. Gradleの場合の構成はどうなる?

5. Gradleの場合の構成はどうなる?
5. Gradleの場合の構成はどうなる?

Jakarta EEプロジェクトをGradleで構築する場合も、基本的な構成はMavenと同じです。ただし、build.gradleを使って依存関係を管理します。


my-jakartaee-app/
├── src/
│   ├── main/
│   │   ├── java/
│   │   ├── resources/
│   │   └── webapp/
│   └── test/
│       └── java/
├── build.gradle

Gradleを使う場合でも、Jakarta EEのライブラリ(Servlet API、JSP APIなど)をdependenciesで指定する必要があります。

6. Jakarta EEとMaven/Gradleの連携ポイント

6. Jakarta EEとMaven/Gradleの連携ポイント
6. Jakarta EEとMaven/Gradleの連携ポイント

Jakarta EEで開発するには、Servlet APIやJSP APIなどの依存関係をMavenやGradleで明示的に追加する必要があります。

Mavenならpom.xmlに以下のように記述します:


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

Gradleの場合はbuild.gradleに以下のように記述します:


dependencies {
    providedCompile 'jakarta.platform:jakarta.jakartaee-web-api:10.0.0'
}

これにより、Jakarta EEのAPIにアクセスできるようになり、IDEの補完機能やビルドが正常に行えるようになります。

7. 初心者がつまずきやすいポイントと対策

7. 初心者がつまずきやすいポイントと対策
7. 初心者がつまずきやすいポイントと対策

初心者がJakarta EEのプロジェクト構成でよくつまずくのが以下の点です:

  • JavaソースとJSPファイルの配置場所が混在する
  • web.xmlが正しく配置されていない
  • MavenやGradleで依存関係が通らない

上記のようなトラブルを防ぐためには、テンプレートプロジェクトを使って始めるのが効果的です。また、EclipseやIntelliJ IDEAのJakarta EEサポート機能を使うことで、自動生成される構成を参考にできます。

8. Jakarta EEのディレクトリ構成を覚えるコツ

8. Jakarta EEのディレクトリ構成を覚えるコツ
8. Jakarta EEのディレクトリ構成を覚えるコツ

最後に、構成をしっかり覚えるコツは「役割ごとに整理すること」です。Javaコードはmain/java、画面はwebapp、設定はresourcesというように、決まったルールを守ることがJakarta EEアプリの成功への第一歩です。

将来的にServlet、JSP、CDI、JPAなどの各機能を使うときにも、このディレクトリ構成が基本となるので、今のうちにしっかり理解しておきましょう!

まとめ

まとめ
まとめ

Jakarta EEプロジェクトのディレクトリ構成は、アプリケーション開発をスムーズに進めるための基礎となる重要なポイントです。特に初心者にとって、src/main/javasrc/main/webappWEB-INFなどの役割が明確に理解できているかどうかは、ServletやJSP、JPA、CDIといったJakarta EE技術を扱う際の作業効率やトラブル回避に直結します。正しい場所に正しいファイルを配置することは、アプリケーションが正常に動作するための第一条件であり、開発全体の品質にも影響します。

さらに、MavenやGradleといったビルドツールとディレクトリ構造は深く結びついています。設定ファイルであるpom.xmlbuild.gradleは、Jakarta EEで利用するAPIを適切に参照するために欠かせない存在です。依存関係の追加、WARファイルの生成、リソース管理など、ビルドツールが担う役割を理解しておくことで、アプリケーション全体の構成をより体系的に把握できるようになります。特にJakarta EEのAPIをprovidedとして扱う理由や、web.xmlの配置場所の重要性といった基礎知識は、確実に身につけておきたい内容です。

また、ディレクトリ構成がしっかり理解できていると、ServletをはじめとするWebコンポーネントがどのように読み込まれ、どこでマッピングされ、どのようにリクエスト処理が流れていくのかも自然と理解しやすくなります。WEB-INF配下のセキュリティやアクセス制御の仕組み、JSPファイルがどのようにビルドされるかといった動作も、構成を押さえていれば直感的に把握できます。開発効率を高めるうえで、ディレクトリごとの役割を正確に把握することは非常に重要なのです。

さらに、将来的にJakarta EEの多機能な仕様を扱う際にも、今回学んだ構成が確実に役立ちます。CDIのbeans.xml、JPAの設定ファイル、JAX-RSの構成クラスなど、各種設定を適切な場所に配置することで、Jakarta EEが提供する豊富な機能を正確に利用できます。複雑になりがちな企業システムでも、基礎構造を理解しているだけでトラブルの早期発見や保守性の向上に大きく貢献します。

Jakarta EE開発では、コードを書く前にプロジェクト全体の構造を理解することが非常に大切です。ディレクトリ構成は開発工程全体の土台であり、アプリケーションの品質や開発速度を左右します。今回学んだ標準構成を確実におさえておけば、MavenでもGradleでも迷うことなく安定したWebアプリケーションを構築できるようになるでしょう。

サンプル設定ファイル(補足コード)


<!-- web.xml の基本構成サンプル -->
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         version="5.0">

    <servlet>
        <servlet-name>SampleServlet</servlet-name>
        <servlet-class>com.example.SampleServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>SampleServlet</servlet-name>
        <url-pattern>/sample</url-pattern>
    </servlet-mapping>

</web-app>

// Gradle で Jakarta EE の依存を追加する例
dependencies {
    providedCompile 'jakarta.platform:jakarta.jakartaee-web-api:10.0.0'
}
先生と生徒の振り返り会話

生徒

「先生、ディレクトリ構成ってあまり意識していなかったんですが、Jakarta EEではすごく大事なんですね!」

先生

「その通りです。プロジェクトの配置が理解できると、ServletやJSPがどう動いているかも自然とわかるようになりますよ。」

生徒

「web.xml の役割もよく理解できました。どこに置くかでアプリが動かなくなる理由も納得です!」

先生

「構成を覚えておくと、今後のCDIやJPAなどの学習にも確実に役立ちます。基礎はとても大切ですよ。」

生徒

「ありがとうございます!今日の内容をもとに、Jakarta EEのプロジェクトを自分でも組み立ててみます!」

先生

「良い心がけです。構造を正しく理解することが、安定したWebアプリの第一歩ですからね。」

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