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

Jakarta EEプロジェクト用のpom.xml基本設定を完全解説!初心者向けMaven構成ガイド

Mavenのpom.xmlの基本設定(Jakarta EE用)
Mavenのpom.xmlの基本設定(Jakarta EE用)

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

生徒

「Jakarta EEのプロジェクトでMavenを使っているんですが、pom.xmlの中身がよく分からなくて…」

先生

「pom.xmlは、MavenでJakarta EEアプリケーションを管理・構築するための設計図のようなものです。各設定の意味を理解すれば、もっと自由に開発できますよ。」

生徒

「なるほど…Jakarta EEに必要な設定項目とか、基本構成を教えてほしいです!」

先生

「それでは、Jakarta EEプロジェクトに必要なpom.xmlの基本構成を一緒に見ていきましょう!」

1. Mavenのpom.xmlとは?

1. Mavenのpom.xmlとは?
1. Mavenのpom.xmlとは?

pom.xmlは、Mavenを使ったJavaプロジェクト全体を管理するための設定ファイル(設計図)です。プロジェクト名やバージョンといった基本情報に加え、使用するライブラリやビルド方法まで、開発に必要な内容がすべてまとめて記述されています。

Jakarta EEプロジェクトでは、ServletやJPA、CDIなど複数のAPIを同時に利用するため、どのライブラリを、どのバージョンで使うかを明確にするpom.xmlの役割が特に重要になります。

初心者向け:pom.xmlは何をしているファイル?

プログラミング未経験者の方は、「難しそうな設定ファイル」に見えるかもしれませんが、pom.xmlは必要な部品を自動で集めて、正しい形に組み立ててくれる指示書だと考えると分かりやすくなります。


<project>
    <groupId>com.example</groupId>
    <artifactId>sample-app</artifactId>
    <version>1.0</version>
</project>

このように、まずは「このプロジェクトは何という名前で、どのバージョンか」を定義します。ここを基準に、後からJakarta EE用のライブラリやビルド設定が追加されていきます。

pom.xmlを理解しておくことで、「なぜビルドが失敗するのか」「どの設定を直せばいいのか」が分かるようになり、Jakarta EE開発を安心して進められるようになります。

2. Jakarta EEプロジェクトの基本的なpom.xml例

2. Jakarta EEプロジェクトの基本的なpom.xml例
2. Jakarta EEプロジェクトの基本的なpom.xml例

ここでは、Jakarta EEでWebアプリケーションを作成する際に、まず最初に押さえておきたい最小構成のpom.xmlを紹介します。初学者の方は「全部を一度に理解しよう」とせず、全体の形を眺めることを意識すると読みやすくなります。

この例では、「Jakarta EEのWebアプリをビルドして、アプリケーションサーバにデプロイできる状態」をゴールにしています。


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>jakartaee-app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

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

    <build>
        <finalName>jakartaee-app</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

初心者向け:まず見るべきポイント

初めてpom.xmlを見る場合は、すべてを理解しようとせず、次の3点だけを押さえておくと十分です。

  • groupId / artifactId / version:プロジェクトの名前と識別情報
  • packaging:Webアプリなのでwarになっている
  • dependencies:Jakarta EEのAPIを使うための設定

この基本形を土台として、後の章で紹介する依存関係やプラグインを少しずつ追加していくことで、安全で分かりやすいJakarta EEプロジェクト構成を作ることができます。

3. packagingタグの意味

3. packagingタグの意味
3. packagingタグの意味

<packaging>war</packaging>は、このMavenプロジェクトがJakarta EEのWebアプリケーションであることを示す重要な設定です。この指定があることで、Mavenは「Webアプリとしてビルドする」と判断します。

ビルドを実行すると、成果物として.warファイルが生成されます。このWARファイルは、PayaraやWildFlyなどのJakarta EE対応アプリケーションサーバーにそのまま配置(デプロイ)できる形式になっています。

初心者向け:warって何?

プログラミング未経験の方は、「war」という言葉に馴染みがないかもしれません。warはWeb Application Archiveの略で、Webアプリに必要なファイルを一つにまとめた箱のようなものです。

たとえば、HTML・Javaクラス・設定ファイルなどが、すべてこのwarファイルの中に入ります。


<packaging>war</packaging>

もしここをjarにすると、Webアプリではなく通常のJavaアプリとして扱われてしまい、アプリケーションサーバーに正しく配置できません。

Jakarta EEでWebアプリを作る場合は、packagingは基本的にwarを指定すると覚えておくと安心です。

4. jakarta.jakartaee-web-apiの依存設定

4. jakarta.jakartaee-web-apiの依存設定
4. jakarta.jakartaee-web-apiの依存設定

Jakarta EEのAPIを使用するために、次の依存関係を追加します:


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

providedスコープにしておくことで、アプリケーションサーバー側にすでに存在するライブラリを利用する前提の構成になります。Jakarta EEに対応したサーバー(Payara, WildFlyなど)ではこの形式が推奨されます。

5. Javaバージョンの指定(source・target)

5. Javaバージョンの指定(source・target)
5. Javaバージョンの指定(source・target)

maven-compiler-pluginを使って、Javaソースコードのバージョンを指定します。


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.10.1</version>
    <configuration>
        <source>17</source>
        <target>17</target>
    </configuration>
</plugin>

Jakarta EE 10では、Java 11以降のバージョンが推奨されています。ここではJava 17を指定していますが、使用環境に合わせて調整してください。

6. finalNameタグの使い方

6. finalNameタグの使い方
6. finalNameタグの使い方

finalNameは、ビルドしたときに生成されるWARファイル名を指定します。たとえば、jakartaee-app.warという名前で出力されるようになります。

デプロイ先で分かりやすくするために、プロジェクト名やバージョンを含めるのも一般的です。

7. プロファイルやプラグインの追加も可能

7. プロファイルやプラグインの追加も可能
7. プロファイルやプラグインの追加も可能

さらに発展的な設定として、Tomcatなどローカルでテストしたい場合にtomcat7-maven-pluginなどを利用することも可能です。


<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <path>/</path>
        <port>8080</port>
    </configuration>
</plugin>

このように、pom.xmlはJakarta EE開発の中心的な存在であり、理解しておくことでプロジェクトの安定性や拡張性が大きく向上します。

8. Jakarta EEとpom.xmlの関係を理解するメリット

8. Jakarta EEとpom.xmlの関係を理解するメリット
8. Jakarta EEとpom.xmlの関係を理解するメリット

Jakarta EEプロジェクトにおいてpom.xmlの構成を理解することは、次のようなメリットがあります:

  • ビルドエラーや依存トラブルを事前に防げる
  • 複数人での開発でも設定が共有される
  • CI/CDのパイプラインに組み込みやすくなる
  • バージョン管理が明確になる

これからJakarta EEで本格的にWebアプリケーションを作成する方にとって、pom.xmlの基本をマスターすることは、最も重要な第一歩の一つです。

まとめ

まとめ
まとめ

Jakarta EEを利用したWebアプリケーション開発では、Mavenの中心となる設定ファイルであるpom.xmlの理解が欠かせません。特に、依存関係として追加するjakarta.jakartaee-web-apiや、providedスコープの意味、さらには<packaging>war</packaging>によるアプリケーション構成の指定は、Jakarta EE特有の重要な知識として押さえておくべき点です。また、maven-compiler-pluginを用いたJavaバージョン指定は、最新のJakarta EE仕様に適したビルド環境を整えるために必須の設定項目です。これらの項目は、安定したアプリケーション開発につながるだけでなく、チーム開発やCI/CD環境の導入にも役立つ基礎情報です。さらに、TomcatやPayaraなどのサーバーを利用したローカル実行のためのプラグイン設定や、プロジェクトに応じたfinalNameの使い方など、応用的な設定を取り入れることで開発効率を高めることもできます。 Jakarta EEのプロジェクトではAPIの互換性や依存の状態が重要になるため、pom.xmlを丁寧に管理することがアプリケーションの品質向上に直結します。特に、複雑な依存関係が増える大規模開発では、pom.xmlを理解して必要なライブラリのみを適切に設定することにより、ビルドエラーの防止や動作不具合の早期発見にもつながります。初心者の方がまず身につけるべき項目として、依存関係・ビルド設定・パッケージ形式の三つを重点的に押さえると、Jakarta EE開発に対する理解が大きく深まります。 以下では、まとめとしてシンプルなpom.xmlの例を改めて記載し、重要な設定がどこに記述されているのか振り返れるようにしています。

サンプル・pom.xmlまとめ版


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>jakartaee-summary</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

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

    <build>
        <finalName>jakartaee-summary</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

このような基本構成を理解しておくと、Jakarta EEアプリケーション全体の流れが自然と見えるようになります。依存ライブラリの役割や、それぞれの設定タグがプロジェクトにどのような影響を与えるのかを把握することで、エラー発生時の原因特定や改善作業が格段にスムーズになります。また、プロジェクトの拡張や機能追加時にもpom.xmlを適切に編集できるため、より洗練されたアプリケーション開発へつなげることができます。Jakarta EEを学び始めたばかりの方でも、pom.xmlの仕組みを正しく理解することで、サーバーサイド開発の知識が飛躍的に広がり、今後の学習にも大きく役立ちます。

先生と生徒の振り返り会話

生徒:「pom.xmlの中にある設定タグがそれぞれ何を意味しているのか、だいぶ分かるようになりました!」

先生:「よかったですね。特にJakarta EEではprovidedスコープやwarパッケージの理解がとても重要なんですよ。」

生徒:「はい、サーバー側に用意されているAPIを使うためにprovidedを指定するってすごく納得できました。」

先生:「その調子です。Javaバージョンの指定やfinalNameの設定も、プロジェクトを整理するうえで大事な要素です。」

生徒:「これで次にプロジェクトを作るときは、自信を持ってpom.xmlを編集できそうです!」

先生:「すばらしいですね。Jakarta EE開発は奥深いですが、今日の内容を基礎にすればしっかり成長できますよ。」

カテゴリの一覧へ
新着記事
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 SQLタグを使った簡易データベースアクセスをやさしく解説
No.6
Java&Spring記事人気No6
Jakarta EE
Jakarta EE JSPにおけるJSTL国際化タグ(fmt:message)の使い方を初心者向けに完全解説
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EE JSPでJSTLを使ったJSONやREST APIレスポンス処理を初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Play Framework
Play Frameworkでリクエストデータの受け取り方を完全解説|Java初心者向けコントローラ入門