ぺんぎんらぼ

お笑いとマンガ好きなしょぼしょぼWeb系エンジニアの日記です。たまに絵を描きます。

お笑いとマンガ好きなしょぼしょぼWeb系エンジニアの日記です

Eclipseで始めるJakarta EE 10プログラミング超入門 ① - Gradleプロジェクトの作成

Jakarta EE (旧Java EE)でアプリを作ってみたいけど、Jakarta EEは難しそうだしなー。とりあえず簡単に始められるSpring Bootでいいか。

という方、多くないですか?そもそも、Spring Bootがあるから、Jakarta EEは興味ない!って人も多いと思います。
Jakarta EEは壮大なフレームワークで、日本語の情報が少ないため、とっつきにくい、というのも否定できません。

でも、お仕事プログラマーをしてると、大規模なエンタープライズアプリの開発で、Jakarta EEを使いことは少なくありません。
そんな時のために、Jakarta EEで最低限のプログラムが書けるようになっておきましょう!!

Jakarta EEのプロジェクトの作成

今回はプログラミングをする前に、Jakarta EEのプロジェクトを作成します。
Eclipseでは、新規プロジェクトの作成で「動的Webプロジェクト」を選ぶことで、Jakarta EEのプロジェクトを作成できます。
しかし、「動的Webプロジェクト」で作成したプロジェクトはMavenやGradleなどのビルドツールを使わないプロジェクトになっています。
プロジェクトの管理をしやすくするために、今回はGradleプロジェクトとしてJakarta EEのプロジェクトを作成します。

Gradleプロジェクトの作成

EclipseのBuildshipプラグインを使って、Gradleプロジェクトを作成します。

プロジェクト名を入力するだけで、数クリックでプロジェクトが作成できます。

検証目的のプロジェクトなので、フラットなシングルプロジェクトとして作成するのもよいでしょう。
Buildshipプラグインで、Gradleのシングルプロジェクトを作成する方法は、以下の記事で解説しています。

penguinlabo.hatenablog.com

build.gradleの編集

build.gradleを編集して、Jakarta EEのプロジェクトとして必要な設定を記載します。

plugins {
    id 'java-library'
}
apply plugin: 'war'
apply plugin: 'eclipse'
apply plugin: 'eclipse-wtp'

sourceCompatibility = '17'
targetCompatibility = '17'

repositories {
    mavenCentral()
}

eclipse {
    wtp {
        facet {
            facet name: 'jst.java', version: '17'
            facet name: 'jst.web', version: '6.0'
        }
    }
}

dependencies {
    compileOnly 'jakarta.platform:jakarta.jakartaee-api:10.0.0'
    testCompileOnly 'jakarta.platform:jakarta.jakartaee-api:10.0.0'
}

以下に、各項目の内容を解説しますが、興味がない方は、このサンプルをそのまま使って、以下の説明は読み飛ばしてください。

プラグインの設定
plugins {
    id 'java-library'
}
apply plugin: 'war'
apply plugin: 'eclipse'
apply plugin: 'eclipse-wtp'

Gradle内で必要となるプラグインを指定します。

Javaのバージョン
sourceCompatibility = "17"
targetCompatibility = "17"

sourceCompatibilityで、Javaソースのバージョンを指定します。
targetCompatibilityで、コンパイルで生成されるクラスファイル(バイトコード)の互換性を指定します。

Mavenリポジトリの指定
repositories {
    mavenCentral()
}

依存関係の解決にMaven Centralを使用する指定です。

eclipseのWebアプリケーションの設定
eclipse {
    wtp {
        facet {
            facet name: 'jst.java', version: '17'
            facet name: 'jst.web', version: '6.0'
        }
    }
}

eclipseのWebアプリケーションの設定を定義します。

facet name: 'jst.java'でJavaファセットのバージョンを、facet name: 'jst.web'で動的Webモジュールファセットのバージョンを指定します。
eclipseでプロジェクトのプロパティーのプロジェクト・ファセットに表示される使用するファセットとバージョンに反映されます。
動的Webモジュールのファセットを有効にしないと、eclipse上でサーバにデプロイ(追加)することができなくなるため、設定を定義しています。
動的Webモジュールとは、Jakarta EEのJakarta Servletに当たります。

依存関係の設定
dependencies {
    compileOnly 'jakarta.platform:jakarta.jakartaee-api:10.0.0'
    testCompileOnly 'jakarta.platform:jakarta.jakartaee-api:10.0.0'
}

Jakarta EE 10のライブラリを依存関係に追加します。
ここで指定しているライブラリは空実装となっており、機能しません。
実行時にJakarta EEのライブラリはWebアプリケーションサーバに含まれるものが使用されるので、コンパイルするための空実装のライブラリとなります。

Webアプリリソースのディレクトリ作成

Webアプリのリソースを格納するディレクトリを作成します。
一般的には、今回のbuild.gradleファイルで指定したとおり、src/main/webappです。 src/mainディレクトリに「webapp」ディレクトリを作成します。

Gradleプロジェクトのリフレッシュ

build.gradleファイルの変更内容をプロジェクトに反映する必要があります。

プロジェクトを右クリックして、[Gradle] - [Gradleプロジェクトのリフレッシュ]を実行します。

JREシステム・ライブラリー」がbuild.gradleファイルで指定したバージョンのJavaになっていること、「プロジェクトと外部の依存関係」にJakarta EEのライブラリが追加されていることが確認できます。