きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

GitpodでJavaの開発環境を構築する

きり丸アドベントカレンダー2020の1記事目です。今回のアドベントカレンダーJavaとSpringBootを使いつつ、TODOアプリを作って公開するところまでやりたいと考えてます。

はじめてのJavaのプログラミングに最適!という形で皆さんに紹介できたら、と考えています。

この記事のゴール

  • Gitpodにて、指定のJavaのバージョンで起動する
    • java --versionで目的通りのバージョンが起動したらゴール

環境

ライブラリ


その他のライブラリに関しては、都度紹介します。

オンラインエディタ


  • Gitpod

できるだけ各個人の環境差異が無いように、クラウドIDEのGitpodを使用します。Gitpodについてのきり丸の記事はこちら

ソースコード管理


Gitpodを扱う際に、リポジトリも必要となるので、事前にアカウントを作成してください。

手順

GitHubリポジトリを作成する


今回の記事では説明しません。GitHub公式からリポジトリを作成してください。

github.co.jp

Gitpodを起動する


作成したリポジトリのURLに対して、「gitpod.io/#」を頭に付与してください。

例えば、今回作成したリポジトリは下記です。 https://github.com/hirotoKirimaru/adventCalendar2020

このURLにアクセスすると、Gitpodのワークスペースを作成できます。
gitpod.io/#https://github.com/hirotoKirimaru/adventCalendar2020

Gitpodの設定を初期化する


ターミナルに下記コマンドを入力して、Gitpodの設定ファイルを生成します。

gp init

実行後、.gitpod.yml.gitpod.Dockerfileが自動生成されています。

GitpodのJavaのバージョンを指定する


現在、デフォルトのGitpodには、Javaの11.0.9がインストールされています。もし、Java11で動作させる場合は特に設定不要です。少なくとも、Javaの次の長期サポート(LTS)はJava17の2021年9月なので、それまでは何もせずとも確認できるでしょう。

ただし、今後も同一環境であることは証明できないので、この設定しておくと環境固定ができるのでお勧めです。

# Java の version確認方法
java --version

f:id:nainaistar:20201121224333p:plain


今回のアドベントカレンダーではOpenJDK:ZuluのJava15をインストールします。特にオススメのOpenJDKはありませんので、自由に選んでください。GitpodのデフォルトJDKがZuluなので、今回はZuluを選んでいます。

GitpodにはJavaをインストールするためのSDKMANが含まれているので、SDKMANを使用してインストールします。SDKMANが管理するJavaのリストは下記コマンドで取得できます。

インストール対象のIdentifierを確認してください。

sdk list java

f:id:nainaistar:20201121224348p:plain


gp initで初期化した.gitpod.Dockerfileに下記コマンドを加えます。

今回は、Identifierが15.0.1.fx-zuluをインストールするので下記コマンドにしています。

FROM gitpod/workspace-full

USER gitpod

RUN bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh \
             && sdk install java 15.0.1.fx-zulu"

GitpodにJavaをインストールする(Gitpodを一度破棄して作成しなおす)


.gitpod.Dockerfileの修正を環境に反映するには、一旦作成したワークスペースを破棄する必要があります。単純にワークスペースのstartとstopを行うだけでは反映されません。なお、Gitpod上で操作したファイルはワークスペースの破棄時に消えてしまうので、必ずGitHubに修正をpushしてから実施してください。

ワークスペースへのリンク

f:id:nainaistar:20201121224400p:plain

ワークスペースの破棄後に最初と同様にワークスペースを作成すると.gitpod.Dockerfileのロードが始まってインストールが始まります。

今後も.gitpod.Dockerfileを更新するときは破棄して再生成する必要があります。単純な環境変数は別の手段で設定できます。他の手段もあるかもしれないですが、今回は見つけられませんでした。

Javaのインストールを確認


下記コマンドを実行し、目的のJavaのバージョンがインストールできていれば環境構築完了です。

java --version

f:id:nainaistar:20201121224416p:plain

自動import機能をオンにする

アドベントカレンダーを6日目まで記事を書いた後に、この設定をやっておくとちょっと楽、という点に出会いました。

ヘッダーの「File」から「settings」をクリックして、「Open Preferences」をクリックします。

そうすると、Gitpodの設定画面が表示されるので、「Save Actions」の「Save Actions Organize imports」をオンにしてください。

この設定を行っても、確実にimportされるわけではありませんが、まだマシになります。

f:id:nainaistar:20201123151046p:plain

ソースコード

1日目の完了時のタグに合わせています。 github.com

終わりに

アドベントカレンダーの技術検証が済んでいないので、どこまでできるかが分かりませんが頑張ります。

まだまだJavaの需要は尽きないと思うので、ぜひこのアドベントカレンダーをみてJavaでTODOアプリ作ってみたいなぁ、という方は参考にしてみてください。駆け出しエンジニアに届け。


この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。

参考記事

Gitpod公式のJavaインストール方法 www.gitpod.io

類似記事

きり丸アドベントカレンダー2020 adventar.org

2日目のアドベントカレンダーの記事:TODO

f:id:nainaistar:20201130224046p:plain