👻

Windows10 に Java/Spring Boot 開発環境をセットアップする

2021/11/29に公開

はじめに

Scoop を利用して Windows10 に Java 開発環境をセットアップする手順です。 Spring Boot 開発を行う前提の手順ですが、普通の Java 開発もこの手順で問題ないです。

IDE には Spring Tools 4 for Eclipse を利用し、コードフォーマッタは私が設定したものを利用する前提になっていますが、あなたのプロジェクトで指定されたものがある場合はそちらを利用してください。
(Java 開発では IDE に組み込まれたコードフォーマッタを利用することも多く、 IDE を自由に選択できないことも少なくありません)

Scoop インストール

Windows メニューから Windows PowerShell アプリケーションを起動し、次のコマンドを入力します:

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

質問に y で回答し、設定を変更します。
続いて次のコマンドを入力し Scoop をインストールします:

iwr -useb get.scoop.sh | iex

これで Scoop インストールは完了です。
続いて、 extras, java バケットを追加します。
バケット追加には Git パッケージのインストールが必要なので、先んじて Git もインストールします:

scoop install git
scoop bucket add extras
scoop bucket add java

補足説明

  • 公式インストール手順: https://scoop.sh/
  • PowerShell プロンプト上では、右クリックでペーストできます。

各種開発ツールインストール

PowerShell 上で次のコマンドを実行します:

scoop install pwsh conemu vscode-portable temurin17-jdk maven gradle

補足説明

  • ここでは VSCode(vscode-portable) も Scoop でインストールすることにしていますが、 VSCode は本体にアップデート機能もあるので、通常のインストーラでインストールしても良いかもしれません。
  • 他の JDK ディストリビューションを選択したい場合、こちらから一覧できます: https://github.com/ScoopInstaller/Java/tree/master/bucket
  • Linux (や Mac) では SDKMAN! を利用して Java 系ツールのパッケージ管理を行うのがメジャーですが、 Windows では少し扱いづらいのでそれらも Scoop で管理することにしています。
    • 具体的には、SDKMAN! が期待しているシンボリック機能の動作が Windows 上では行えていません。

(オプション) プログラミング用フォントインストール

https://github.com/miiton/Cica/releases から Cica_v5.0.2_with_emoji.zip (最新版のもの)をダウンロード、展開し、 .ttf ファイルをダブルクリックで開きインストールボタンを押します。

補足説明

  • フォントは好みで選べばよいと思いますので、上記でインストールした Cica フォント以外のものを利用したければ、そちらをインストールして構いません。

VSCode セットアップ

VSCode を起動します。
VSCode 上で Ctrl + Shift + P キーを押すと コマンドパレット が開きます。
ここで setting と入力すると候補を絞り込めますので、 Preferences: Open Settings(JSON) を選択します。

settings.json というファイルが開きますので、次の内容をコピー&ペーストします:

{
  "files.encoding": "utf8",
  "files.eol": "\n",
  "editor.formatOnSave": true,
  "editor.minimap.enabled": false,
  "window.title": "${dirty}${activeEditorMedium}${separator}${rootName}"
}

補足説明

ConEmu セットアップ

Windows メニューから ConEmu を起動します。
メニューから Settings を開き、 Startup メニュー内の Command line に次の通り記入します(git-cmd.exe のパスは実際のものを入力してください):

C:\Users\yuki\scoop\apps\git\current\git-cmd.exe --no-cd --command=usr/bin/bash.exe -l -i

ConEmu Startup 設定

設定が終わったら ConEmu を一旦終了させてください。
次回起動時から、デフォルトで Git Bash が起動するようになります。
以後、コマンドラインの入力は、特に説明しない場合、コマンドライン入力はこの ConEmu 上の Git Bash で行います。

補足説明

(オプション) Windows Terminal インストール & セットアップ

上記でインストールした ConEmu の代わりに Windows Terminal を利用しても良いです。
(ただし、本文章記述時点では、ややバグっぽい動作を示すことがありましたので、説明は ConEmu を前提に進めます。 Windows Terminal を利用する場合、適宜読み替えてください。)

次のコマンドでインストールします:

scoop install windows-terminal

インストールした Windows Terminal を起動し、設定画面を開きます(ショートカット: Ctrl + ,)。

新しいプロファイルを追加します を押し、既存のプロファイルを 複製 し、そのまま 保存 します。

JSON ファイルを開く を押し、 VSCode で開きます。

上記で複製した、 name が "PowerShell (\u30b3\u30d4\u30fc)" となっているものを探し、commandline, icon, name の値をそれぞれ次の通りに設定します(これら以外の項目は変更せずに残しておいてください):

"commandline": "%USERPROFILE%/scoop/apps/git/current/usr/bin/bash.exe -l -i",
"icon": "%USERPROFILE%/scoop/apps/git/current/usr/share/git/git-for-windows.ico",
"name": "Git Bash",

続いて、同じプロファイル設定に fontFace 項目を追加します。ここでは先にインストールしておいた Cica フォントを指定します:

"fontFace": "Cica"

最後に、デフォルトで起動するプロファイルをこの "Git Bash" に指定しておきます。Windows Terminal の設定画面で スタートアップ を選択し、 既定のプロファイル で "Git Bash" を選択します。

補足説明

Git セットアップ

Git Bash(ConEmu) を開き、次のコマンドを入力します(user.name, user.email は、実際には自身のものを入力します):

git config --global user.name "your name"
git config --global user.email "your.email@example.com"
git config --global init.defaultBranch main
git config --global core.autocrlf false
git config --global core.quotepath false
git config --global pull.ff only
git config --global gui.encoding utf-8
git config --global credential.helper manager-core
git config --global branch.sort authordate
git config --global submodule.recurse true
git config --global alias.logshort 'log --pretty=format:"%h %an %ai %s"'

補足説明

Spring Tools 4 for Eclipse(STS) インストール & セットアップ

https://spring.io/tools から Spring Tools 4 for Eclipse をダウンロードします。

Git Bash(ConEmu) を開いて次のコマンドを実行し、ダウンロードしたファイルを ~/Documents/opt ディレクトリに展開します(3 行目は実際にダウンロードしたファイル名を指定してください):

mkdir ~/Documents/opt
cd ~/Documents/opt
java -jar ~/Downloads/spring-tool-suite-4-4.12.1.RELEASE-e4.21.0-win32.win32.x86_64.self-extracting.jar

同じく Git Bash で次のコマンドを入力し、設定ファイルが格納されたリポジトリをチェックアウトします:

mkdir ~/Documents/repos
cd ~/Documents/repos
git clone https://github.com/yukihane/prefs.git

SpringToolSuite4.exe をダブルクリックし起動します。
(タスクバーにピン止めするかデスクトップにショートカットを作っておくと便利かと思います。)

起動すると workspace ディレクトリ選択ダイアログが現れますので、ドキュメントディレクトリの下の sts-workspaces\default を指定します。
(workspace はこの sts-workspaces 以下にまとめることにします)
workspace 選択

Launch ボタンを押して起動完了させた後、次の操作を行います:

  1. メニューから File > Import を選択します。
  2. General > Preferences を選択します。
  3. 上でチェックアウトしたリポジトリの eclipse/eclipse.epf を選択します。
  4. STS の再起動を促されるので指示に従います。
  5. 再起動したら、メニューから Window > Preferences を選択します。
  6. ツリーメニューから Java > Code Style > Formatter を選択します。
  7. Import を選択し、上でチェックアウトしたリポジトリの eclipse/java-format-setting.xml を選択します。
  8. Active profile が "custom" になっていることを確認して Apply and Close でダイアログを閉じます。

続いて Lombok をインストールします:

  1. STS を終了させます。
  2. https://projectlombok.org/download から lombok.jar をダウンロードします。
  3. java -jar ~/Downloads/lombok.jar コマンドを実行し、インストーラを起動します。
  4. SpringToolSuite4.exe(例: C:\Users\yuki\Documents\opt\sts-4.12.1.RELEASE\SpringToolSuite4.exe) の場所を指定して Install/Upgrade ボタンを押してインストールします。

補足説明

  • STS も Scoop でインストールすることもできます。が、ここでは Scoop を用いずマニュアルインストールすることにしています。これは、新バージョンが出たとき、切り替えて問題が発生した場合にすぐに以前のバージョンに戻せるように、同時に複数バージョンの環境を持っておきたいという意図に因ります(Scoop でインストールすると、バージョンを切り替えることはできるが、同時に複数バージョンを使うことが出来ないので、バグが発生した場合、バージョン間の検証が行いづらい)。

(オプション) VSCode Java/Spring Boot 開発向けセットアップ

上記でセットアップした Spring Tools 4 for Eclipse の代わりに VSCode で開発する場合のセットアップ方法です。

VSCode を開いて次の手順を実施します:

  1. 次の機能拡張をインストールします:
  2. 再起動を促されるので従います。
  3. Ctrl + Shift + P でコマンドパレットを開き、 Java: Open Java Formatter Settings を開き、次のページのコードで上書きします:

補足説明

  • VSCode 機能拡張のフォーマッタは Eclipse のものなので、同じ設定ファイルが利用できます。ただし、 Eclipse と全く同じようにするのは以下の理由で困難です:
    • Eclipse 本体にデフォルトの整形設定を持っているようで、明示的に設定していないものの挙動が異なります。
      • そのようなものに対して明示的に設定することで対応可能です。ただしどれを明示的に設定すべきなのかは自明ではないので煩雑です。
    • Eclipse では Save Action でもコードの整形を行えますが、それに該当する機能は VSCode 機能拡張に存在しません。

Discussion