GradleでJakarta EEプロジェクトを作る手順を解説!初心者でもできる設定方法
生徒
「先生、Jakarta EEのプロジェクトってGradleでも作れますか?」
先生
「もちろん作れますよ。最近ではMavenだけでなくGradleを使うケースも増えています。」
生徒
「どうやってセットアップするんですか?Spring Bootみたいに簡単にできますか?」
先生
「確かにSpring Bootに比べると少し手動の作業がありますが、手順通りにやれば簡単です。では、一緒にGradleでJakarta EEのプロジェクトを作ってみましょう!」
1. GradleでJakarta EEプロジェクトを作る理由とは
Jakarta EEプロジェクトでは、従来はMavenが多く使われてきましたが、最近ではGradleも広く利用されるようになっています。Gradleはビルドの高速化、柔軟なカスタマイズ、依存関係の管理がしやすいという利点があります。また、コマンドが直感的で初心者にも優しい設計です。
Jakarta EEとGradleを組み合わせることで、モダンなJava開発環境を構築しやすくなり、効率的な開発が可能になります。
2. プロジェクトのディレクトリ構成を用意しよう
まずは、以下のような基本的なディレクトリ構成を作成します。webappやWEB-INFといったディレクトリはJakarta EEアプリケーションでは重要な要素です。
jakartaee-gradle-app/
├── build.gradle
├── settings.gradle
└── src/
└── main/
├── java/
│ └── com/example/
│ └── HelloServlet.java
└── webapp/
└── WEB-INF/
└── web.xml
この構成を作っておくと、GradleからWARファイル(Webアプリケーション用のパッケージ)を簡単に生成できます。
3. build.gradleに必要な設定を書く
次に、build.gradleにJakarta EE用の依存関係と、WARプラグインの設定を記述しましょう。ここではwarプラグインを使用し、Jakarta Servletの依存を追加します。
plugins {
id 'java'
id 'war'
}
group = 'com.example'
version = '1.0.0'
repositories {
mavenCentral()
}
dependencies {
providedCompile 'jakarta.platform:jakarta.jakartaee-web-api:10.0.0'
testImplementation 'junit:junit:4.13.2'
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
providedCompileは、実行時にはアプリケーションサーバー(PayaraやWildFly)がJakarta EEのAPIを提供するため、ローカルでだけ使う依存として指定します。
4. settings.gradleにプロジェクト名を設定
プロジェクトのルート名を指定することで、ビルドツールが適切にプロジェクトを認識できるようになります。
rootProject.name = 'jakartaee-gradle-app'
5. サーブレットクラスを作成しよう
Jakarta EEプロジェクトでは、サーブレットを使ってリクエスト処理を行います。以下は簡単なHelloServletの例です。
package com.example;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().write("<h1>こんにちは Jakarta EE!</h1>");
}
}
6. web.xmlでサーブレットを定義する
web.xmlはデプロイメントディスクリプタと呼ばれ、サーブレットのマッピングなどを定義します。
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
version="10"
metadata-complete="true">
<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>
7. GradleでWARファイルをビルドする方法
すべての設定が完了したら、GradleのコマンドでWARファイルをビルドしてみましょう。
./gradlew clean build
ビルドが成功すると、build/libs/ディレクトリ内にjakartaee-gradle-app.warファイルが生成されます。このWARファイルをPayaraやWildFlyなどのJakarta EEアプリケーションサーバーにデプロイすれば、Webアプリとして動作します。
8. Jakarta EEとGradleの組み合わせは初心者に最適
GradleでJakarta EEプロジェクトを構成することで、ビルドや依存関係の管理が視覚的に分かりやすくなります。また、Spring Bootのようなフレームワークを使わずに純粋なJakarta EEの構成を理解するのにも適しています。
初心者の方は、まずはこのような基本構成からスタートし、少しずつJSPやJPAなどの他のJakarta EE機能を取り入れていくと良いでしょう。
まとめ
Gradleを使ってJakarta EEプロジェクトを構築する流れは、一見すると設定項目が多く感じられるかもしれませんが、手順に沿って進めることでシンプルかつ効率的に開発環境を整えることができます。ここまでの内容では、プロジェクトのディレクトリ構成を準備し、build.gradleとsettings.gradleで基本設定を記述し、サーブレットやweb.xmlを配置して動作するJakarta EEアプリケーションの基盤を整えるまでの流れを学びました。特にGradleは柔軟なカスタマイズや高速ビルドが特徴で、Jakarta EEのような企業向けWebアプリケーションでも強力に活用できます。
また、WARファイルの生成や依存関係の管理が視覚的にわかりやすく、初心者の学習にも適しているため、Javaの基礎とJakarta EEの動作を理解する際にとても役立ちます。ビルドツールが提供するプラグインを効果的に利用することで、サーブレットの作成からデプロイまでをスムーズに進められる点も魅力です。Gradleでのビルド設定は柔軟であり、Jakarta JSPファイルやJPAといった他のJakarta EE技術との組み合わせも自然に拡張していける構成になっています。
さらに、Gradleのjavaプラグインとwarプラグインを組み合わせることで、Jakarta EEの開発に必要な最低限の要素を自動化し、開発者がアプリケーションのロジックに集中できる仕組みが整っています。以下に、カスタムタスクを使ってWARファイルのビルド時に追加処理を行う例を紹介します。これにより、Gradleの柔軟性をさらに活かすことが可能です。
サンプルコード:Gradleでカスタムタスクを追加する例
tasks.register('printStructure') {
group = 'build'
description = 'プロジェクトの構成を確認する簡単なタスク'
doLast {
println "src/main/java と src/main/webapp を確認してください。"
}
}
tasks.named('build') {
dependsOn 'printStructure'
}
このようなタスクを追加することで、ビルドプロセスに自作の処理を組み込み、プロジェクトの構造確認やログ出力など、各工程で独自のチェックを行えるようになります。Gradleの拡張性はJakarta EEとの相性が非常に良く、サーバーへのデプロイ処理の自動化や、テスト実行の制御なども簡単に組み込むことができます。
また、サーブレットクラスを作る過程で記述したHelloServletのように、リクエストに応答する基本的な流れを理解しておくと、今後JSPやREST APIを実装する際にもスムーズに取り組むことができます。Jakarta EEは広い機能セットを持っていますが、Gradleによる基盤構築をしっかり理解しておけば、機能拡張や本格的なWebアプリケーション構築への第一歩となります。
今回の手順で構築したプロジェクトをベースに、JSPによる画面表示、JPAを使ったデータベース操作、Contexts and Dependency Injection (CDI) を利用した依存性注入など、さまざまな Jakarta EE の機能を段階的に追加していくことで、本格的なエンタープライズアプリケーションへ育てていくことができます。Gradleは設定が見通しやすいため、初めてJakarta EEに触れる人でも安心して開発を続けられる点が大きな利点です。
また、アプリケーションサーバーへのデプロイ作業やテストの自動化にも発展させられるため、この基礎をしっかり理解しておくことで、新しい機能やライブラリを導入する際にもスムーズに対応できるようになります。
生徒
「GradleでJakarta EEのプロジェクトを作る仕組みがよく分かりました!Spring Bootと違って手動の設定が多いけど、仕組みそのものを理解できて勉強になりました。」
先生
「そうだね。自動化が少ない分、自分で構成を作ることでJakarta EEの基本がしっかり身につくんだよ。Gradleは柔軟だから慣れればとても使いやすいよ。」
生徒
「HelloServletの例もわかりやすかったです。web.xmlとの連携も理解できました。次はJSPやJPAにも挑戦してみたいです。」
先生
「ぜひ挑戦してみよう!Gradleで基盤が整っていれば、他のJakarta EE技術も自然に取り入れられるようになるよ。」
生徒
「WARファイルの生成も簡単で驚きました。Gradleがこんなに便利だとは思いませんでした。」
先生
「Gradleの利点を実感できたようで良かったです。今後の開発でもどんどん活用していきましょう。」