🍃
Spring Boot で古いバージョンのプロジェクトを作成する
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 系は無理っぽい。
いろいろ調べるとプロジェクト作成後に 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