【GradleでJakartaEE 8 アプリケーション開発】1. 環境構築

#はじめに

私は業務でJakartaEE (Java EE) を使用したエンタープライズアプリケーションを開発しています。
これまでは参考書を読みながら学習し開発してきましたが、環境構築から開発手順までまとまっている、自分に合ったドキュメントがなかったので、今までの知識を連載形式でまとめていきたいと思います。

#環境
※2020年3月現在のバージョンをもとに選定しています。

| 項目 | 内容 |
|:---|:---|
| OpenJDK ビルド| Azul Zulu 11 |
| フレームワーク | Jakarta EE 8 |
| APサーバ | payara server 5.201 |
| DBサーバ | PostgreSQL 12 |
| ビルドツール | Gradle 6.2.2 |
| IDE | Eclipse 2020-03 (Pleiades All in One) |
| OS | Windows 10 |

#1. 環境構築
## OpenJDK 11 インストール
今回はAzul Zuluを使用します。
payara server 5.192からJava 11対応がされたため、OpenJDK 11としています。
https://jp.azul.com/downloads/zulu-community/?&architecture=x86-64-bit&package=jdk
上記リンクから、 Java 11 (LTS) の Windows 版 msi をクリックしダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/49d59616-51cb-75ca-945d-c2bbe6db838d.png)

ダウンロードしたMSIファイルを実行します。
Next をクリックし、インストールフォルダはデフォルトのまま、 Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/56f81daf-f4db-c3e3-cfaa-f09082ec11ea.png)

Install をクリックし、インストールを開始します。
インストールが完了すると下の画面が表示されますので、Finish をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/8ae7f2ed-5916-fd0a-0ed3-6f9a8c905d52.png)

次に環境変数を設定します。
Windowsの設定にて「環境変数」と検索し、「システム環境変数を編集」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/cf06c0dc-d8ed-d7be-56d8-2aab0f9a8907.png)

環境変数 をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/096a05e2-5a4c-ef6e-3e86-80a53ea8f83e.png)

システム環境変数の 新規 をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/3b8bb232-93be-0564-eaa6-cc9829698687.png)

下記のシステム環境変数を設定します。
下表の通り入力し、OK をクリックします。

| 変数名 | 変数値 |
|:---|:---|
| JAVA_HOME| C:\Program Files\Zulu\zulu-11 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/e69c880a-d40d-d355-1051-bba940f72e99.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/68fd127d-c186-e2c7-d148-c6af39ec1131.png)


コマンドプロンプトを起動し、「java -version」を実行し下記の結果が表示されればインストール完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/f23a110f-4a58-98b3-b01e-d053ec9b6709.png)

別のJDKをインストールしている場合は上記の結果とならない場合があります。
その際はシステム環境変数の設定を開き、Pathの先頭が

```C:\Program Files\Zulu\zulu-11\bin ```

となるように変更してください。

## PostgreSQL 12 インストール
データベースサーバとしてPostgreSQLを使用します。
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
Windows x86-64 の 12.2 の Download をクリックしダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/f8d8bc26-41ee-1891-5352-c5a51368c59d.png)

ダウンロードしたexeファイルを実行します。
Next をクリックし、インストールフォルダはデフォルトのままで、Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/14450907-10f1-4212-b1d8-2942378f8dea.png)

コンポーネントもデフォルトのままで、 Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/1d8791bc-b090-1b80-da76-1a1555c0c0f1.png)

データ保管先を指定します。開発用で特に希望がなければデフォルトのまま使用します。Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/3f3b9913-dfd4-dfc9-5017-3cf5123dbba8.png)

管理ユーザ「postgres」のパスワードを入力します。入力したら Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/894ae0e2-8f5d-5891-d1d9-b84fca57a900.png)

接続ポートを設定します。指定された番号がない限り、デフォルトのまま Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/520b7cbd-2227-86ed-c310-742ec593560a.png)

ロケールを設定します。「C」を選択し、 Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/c8b3e9a9-a384-db3c-dd27-1532a5c402d4.png)

Summaryが表示されますので、Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/95b5e49a-0952-6a03-dc6f-9043a88e4258.png)

Next をクリックして、インストールを開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/e23df42d-bef0-a619-1d7f-d7efec7b6040.png)

インストールが完了したら下の画面が表示されますので、チェックを外して Finish をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/c55aa256-7580-0963-a2fc-22ac1d8f621e.png)

以上でPostgreSQLのインストールは完了です。

## payara server 5 インストール
Java EEアプリケーションサーバとして payara serverを使用します。
https://www.payara.fish/software/downloads/all-downloads/
ここではFullをインストールします。
Payara Server 5.201 (Full) Download をクリックすると、zipファイルがダウンロードされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/ef7dc835-84e2-eef9-1b5e-f67aed50ce7c.png)

Cドライブ直下にpayaraフォルダを作成し、その中にpayara-5.201フォルダを作成します。
※201の部分は今回のバージョンです
ダウンロードしたファイルを解凍し、解凍後のpayara5 フォルダをpayara-5.201フォルダ内に配置します。配置後の `C:\payara\payara-5.201\payara5`フォルダの中身は下の画面のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/a4cb4f48-19e0-685d-f3c2-9c5285f0c58e.png)

次に、payara serverの初期設定を行います。
コマンドプロンプトを起動し、`C:\payara\payara-5.201\payara5\bin`フォルダに移動します。

payara serverを起動します。
`asadmin start-domain` と入力し、実行します。

```
c:\payara\payara-5.201\payara5\bin>asadmin start-domain
Waiting for domain1 to start ......................
Successfully started the domain : domain1
domain  Location: C:\payara\payara-5.201\payara5\glassfish\domains\domain1
Log File: C:\payara\payara-5.201\payara5\glassfish\domains\domain1\logs\server.log
Admin Port: 4848
Command start-domain executed successfully.
```


管理者ログインを行います。
`asadmin login` と入力し、実行します。
ログインユーザはデフォルトのため空欄とします。
ログインに成功すると、`[ユーザフォルダ]\.gfclient\pass` ファイルが作成されます。
※パスワード情報が含まれるバイナリファイルです

```
c:\payara\payara-5.201\payara5\bin>asadmin login
Enter admin user name [Enter to accept default]>
Admin login information for host [localhost] and port [4848] is being overwritten with credentials provided. This is because the --savelogin option was used during create-domain command.
Login information relevant to admin user name [admin] for host [localhost] and admin port [4848] stored at [C:\Users\[ユーザ名]\.gfclient\pass] successfully.
Make sure that this file remains protected. Information stored in this file will be used by administration commands to manage associated domain.
Command login executed successfully.
```

管理者パスワードを変更します。
`asadmin change-admin-password` と入力し、実行します。
ユーザ名はデフォルトのため空欄、パスワードは設定していないため空欄のまま進み、新パスワードを入力します。

```
c:\payara\payara-5.201\payara5\bin>asadmin change-admin-password
Enter admin user name [default: admin]>       ←何も入力せずにEnterキーを押す
Enter the admin password>                     ←何も入力せずにEnterキーを押す
Enter the new admin password>                 ←新パスワードを入力しEnterキーを押す
Enter the new admin password again>           ←新パスワードを入力しEnterキーを押す
Command change-admin-password executed successfully.
```

再度、管理者ログインを行います。
`asadmin login` と入力し、実行します。
ログインユーザはデフォルトのため空欄とし、パスワードは先ほど入力した新パスワードを入力します。
ログインに成功すると、`[ユーザフォルダ]\.gfclient\pass` ファイルが更新されます。

```
c:\payara\payara-5.201\payara5\bin>asadmin login
Enter admin user name [Enter to accept default]>       ←何も入力せずにEnterキーを押す
Enter admin password>                                  ←新パスワードを入力しEnterキーを押す
Admin login information for host [localhost] and port [4848] is being overwritten with credentials provided. This is because the --savelogin option was used during create-domain command.
Login information relevant to admin user name [admin] for host [localhost] and admin port [4848] stored at [C:\Users\[ユーザ名]\.gfclient\pass] successfully.
Make sure that this file remains protected. Information stored in this file will be used by administration commands to manage associated domain.
Command login executed successfully.
```

管理コンソールを利用できるようにします。
`asadmin enable-secure-admin` と入力し、実行します。

```
c:\payara\payara-5.201\payara5\bin>asadmin enable-secure-admin
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.
```

再起動を促されますので、payara serverを再起動します。
`asadmin restart-domain` と入力し、実行します。

```
c:\payara\payara-5.201\payara5\bin>asadmin restart-domain
Successfully restarted the domain
Command restart-domain executed successfully.
```

Webブラウザを起動し、`http://localhost:8080/` にアクセスし、下の画面が表示されるかを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/a0b61621-53cf-1720-6eb2-d6fdade064f9.png)

`https://localhost:4848/` にアクセスし、管理コンソールのログイン画面が表示されるかを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/1a572d4e-3690-c0d9-195b-1a4d1c5cbdef.png)

ログイン画面で User Name (上段) に admin 、Password(下段)に先ほど設定したパスワードを入力し、
ログインに成功し下の画面が表示されたらpayara serverのインストールと初期設定は終了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/fbde43e4-fd26-441e-d2d7-31782e161a51.png)


## Gradle インストール
最新版をダウンロードします。
https://gradle.org/releases/
リンク先画面の下部にある、v6.2.2の binary-only のリンクをクリックし、zipファイルをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/0a156210-9778-e062-d869-71da04998a4c.png)

Cドライブ直下にgradleフォルダを作成します。
ダウンロードしたファイルを解凍し、解凍フォルダ内のgradle-6.2.2フォルダをgradleフォルダ内に配置します。配置後の `c:\gradle\gradle-6.2.2`フォルダの中身は下の画面のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/c305b83b-9073-503c-38c5-070d5785195a.png)

環境変数を設定します。
Windowsの設定にて「環境変数」と検索し、「システム環境変数を編集」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/cf06c0dc-d8ed-d7be-56d8-2aab0f9a8907.png)

環境変数 をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/096a05e2-5a4c-ef6e-3e86-80a53ea8f83e.png)

システム環境変数の 新規 をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/3b8bb232-93be-0564-eaa6-cc9829698687.png)

下記のシステム環境変数を設定します。
下表の通り入力し、OK をクリックします。

| 変数名 | 変数値 |
|:---|:---|
| GRADLE_HOME| C:\gradle\gradle-6.2.2 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/56223bab-7f0d-2b67-fc8a-df5d28655382.png)

システム環境変数のPathを追加します。
Pathを選択し、編集 をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/8f88defa-7bd8-0e81-34f0-4e2db18aa581.png)

新規 をクリックし、「%GRADLE_HOME%\bin」と入力し、 OK をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/561270dc-4bba-8db8-dbe0-73887ed570bf.png)

環境変数の編集画面を閉じた後にコマンドプロンプトを起動し、「gradle -version」を実行し下記の結果が表示されればインストール完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/afdbfec5-6505-a3df-d7b1-f8241ef97131.png)

## Eclipse インストール・初期設定
こちらも最新版をインストールします。(Java の Full Editionが良いと思います)
http://mergedoc.osdn.jp/

ダウンロードしたzipファイルを解凍し、pleiadesフォルダをCドライブの直下に配置します。
※解凍は7-zipを使用して実施してください。

配置したら、`c:\pleiades\eclipse\eclipse.exe` をダブルクリックして Eclipse を起動します。

ワークスペースを選択し Eclipse が起動したら、ヘルプ > Eclipse マーケットプレース を選択します。
Eclipse マーケットプレース が起動したら、「payara tools」と入力し Enter キーを押し、検索結果から payara tools をインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/5eeb0271-7897-f84f-5d9c-1e9b97dcefe8.png)

次のダイアログが表示された場合は、 インストール をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/35f009c0-a459-fb43-3d81-d960a124b287.png)

インストール完了後、Eclipseを再起動します。
再起動が完了したら、ウィンドウ > 設定 を開き、 サーバ > ランタイム環境 を選択し、開発サーバの設定を行います。
追加 をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/08fe23bf-9dc1-240a-e1ba-3c00ee6701d2.png)

Payara を選択し、次へ をクリックします。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/d71f5311-0cb4-1974-9444-e2d8b28e1f6a.png)

Payara Location に payara server のインストールフォルダを設定し、JavaロケーションにJDKのインストールフォルダを設定し、完了 をクリックします。その後、適用して閉じる をクリックし、設定ダイアログを閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/a119c675-e893-667c-a5e5-0ed45c6eac6a.png)

サーバビューを開き、リンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/12266816-6ce1-f283-fdad-297552f8f816.png)

Payara > Payara をクリックし、次へ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/ce761fc9-ce75-80ce-e4ea-a11e1c9ab935.png)

パスワードを入力し、完了 をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/d190dfb7-bd6e-54bf-07e1-c480ddbde26a.png)


サーバービュー に Payara Server が追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/e9a05bef-b482-cda8-28b1-0247dd95568f.png)

以上で環境構築を終了します。
次章では、プロジェクトを作成します。