[Spring #01]Spring Bootバージョンのダウングレード


目的

本記事では、Java用のWebアプリケーション開発フレームワーク「Spring Boot」に対して、意図的にバージョンを落とす(ダウングレード)方法を知ってもらうことを目的としています。

背景

Spring Bootは半年から一年の短い期間でマイナーバージョンアップを繰り返しています。
しかし、Spring Boot バージョン2以降向けの統合開発環境「Spring Tool Suite(以下STS)」が、そのバージョンアップへの適用が追いついておらず、STS利用時に問題が生じることがあります。

課題

本記事では、下記2つの問題点を解決するためには、意図的にSpring Bootのダウングレードすることが手段としてあります。

古いバージョンのSpring Bootが利用できない

プロジェクトを作成する際に、古いバージョンのSpring BootをUI上から選択できません。
2019年9月時点では2.1.7以前のバージョンが選択できません。
Spring Bootのバージョンアップにより、メッセージリソース中のメッセージに別のメッセージを埋め込むなどの一部機能について仕様が変わり、想定した実装ができないという状況も発生します。

設定ファイルでエラーが発生する

選択可能なバージョンでプロジェクトを作成すると、プロジェクト内の設定ファイル「pom.xml」でエラーが発生します。
このままではMavenによるJARファイルのインストールに失敗します。

開発環境

本記事では、以下の開発環境を例として、解決方法を紹介します。

種類 名前
プログラミング言語 Java SE Development Kit 8 Update 111
フレームワーク Spring Boot 2.1.2
統合開発環境 Spring Tool Suite 4.1.0

手順

Spring Bootのダウングレードは以下の流れで行えます。
手順に沿って操作してみましょう。

  1. プロジェクトを作成する
  2. プロジェクトの設定を変更する

プロジェクトを作成する

下記手順に沿って、プロジェクトを作成します。
なお、今回は以下の要件を最低限満たすWebアプリケーションを開発する想定で操作を行います。

  • MVCモデルに則ってWebアプリケーションの基本機能を実装する
  • ビューとしてThymeleafを利用する
  1. STSのメニューから[ファイル] > [新規] > [Spring スターター・プロジェクト]を選択する。

  2. 「新規 Spring スターター・プロジェクト」画面にて、[名前]、[グループ]、[成果物]、[パッケージ]を記入し、[次へ]ボタンを押す。

  3. 「新規Springスターター・プロジェクト依存関係」画面にて、[Spring Boot バージョン]で任意のバージョンを一旦選択する。

  4. 使用可能欄から以下項目を選択して、[完了]ボタンを押す。

    • [開発ツール] > [Spring Boot DevTools]
    • [Web] > [Spring Web]
    • [テンプレート・エンジン] > [Thymeleaf]

Spring Bootのバージョンをダウングレードする

作成した直後のプロジェクトを開くと、pom.xmsに「✕」印が付いており、当該ファイルに問題が発生していることがわかります。

次は、この問題を解消するために、下記手順に沿ってプロジェクトの設定を変更し、使用するSpring Bootのバージョンをダウングレードします。

  1. pom.xmlを開き、下記のように<version>タグの内容を変更する。
pom.xml(編集後)
 ・・・

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 ・・・
pom.xml(編集後)
 ・・・

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 ・・・

2. 対象のプロジェクトを右クリックし、[Maven] > [プロジェクトの更新]を選択する。

3. 「Mavenのプロジェクト更新」画面にて、対象のプロジェクトを選択して、[OK]ボタンを押す。

以上の操作を行うことで、現在設定されているSpring Bootに必要なJARファイルが自動的にインストールされます。
そして、pom.xmlの「✕」印が消えます。

以上で、Spring Bootのダウングレード対応は完了です。