🍃

Spring Boot で古いバージョンのプロジェクトを作成する

2024/01/20に公開

10年以上ぶりくらいに Java の案件を担当する事になり、その案件で使用されているフレームワークが Spring Boot 2.6.5 だったので、学習用に同じバージョンのプロジェクトを作成した時のメモ。

当初普通に Spring Initializr で作成しようとしたが、既にサポート終了した 2 系のプロジェクトは作成できない模様。

Spring Boot CLI を使用するとプロジェクト作成時に Spring Boot の任意のバージョンを指定可能、という情報を見つけ試してみるも以下のエラー。

# Spring Boot CLI のバージョン
% spring --version
Spring CLI v3.2.1

# --boot-version で古いバージョンを指定してプロジェクト作成
% spring init --boot-version=2.6.5 --dependencies=web,batch,lombok,devtools,h2 demo
Using service at https://start.spring.io
Initializr service call failed using 'https://start.spring.io' - service returned Bad Request: 'Invalid Spring Boot version '2.6.5', Spring Boot compatibility range is >=3.1.0'

実行した 2024.01 時点で Spring Initializr で選択可能な最低バージョンは 3.1.8 なので、確かに画面よりは古いものを選択できそうだが、2 系は無理っぽい。

Spring Initializr

いろいろ調べるとプロジェクト作成後に pom.xml や build.gradle でバージョン下げろ、という回答が結構多め。

他には spring-initializr を clone してカスタマイズしてローカルで動かす、とかも出てくるがそこまで頻繁に使うものでもないし、一旦依存関係を修正する方法で作成してみる。

Spring Boot CLI でサポートされている最低バージョンでプロジェクト生成。

% spring init --boot-version=3.1.0 --dependencies=web,batch,lombok,devtools,h2 demo

生成されたプrジェクト直下の build.gradle を編集。
以下を変更した。

plugins {
    ・・・
    id 'org.springframework.boot' version '2.6.5'
    ・・・
}

変更後に gradle dependencies で依存関係のバージョンを確認。

% gradle dependencies

ライブラリのバージョンを確認すると以下のような感じ。

  • org.springframework.boot:spring-boot-starter:2.6.5
  • org.springframework.boot:spring-boot:2.6.5
  • org.springframework:spring-core:5.3.17
  • org.springframework.batch:spring-batch-core:4.3.5
  • org.springframework:spring-web:5.3.17

問題無さそう。

この状態で VSCode で開くとちゃんとビルドも実行もできた。

Discussion