おおくまねこ

職業プログラマーです。興味のある話題を書いています。

Visual Studio Code (VSCode) で SpringBoot の実行時に Active Profile を指定する

はじめに

VSCode で Active Profile を設定する場合、どうするのが良いだろうと調査したので書いておきたいと思います。

SpringBoot には Active Spring Profile という機能が存在します。

開発環境、本番環境で使うDBの種類やリクエスト先のサーバーURLが異なる場合に、設定値で切り替えると思いますが、

この機能で環境毎に設定ファイル自体を切り替えることができるようになります。

方法

デバッグ実行の設定から Active Profile を指定して起動するものを追加するのが良さそうです。

Active Profile を有効にして起動するには以下の方法があります。 - コマンドライン引数にして渡す。起動時のオプション指定に --spring.profiles.active を指定する。 - Java System Option に渡す方法。起動時のオプション引数に -Dspring.profiles.activeを指定する。

「Run and Debug」から設定を追加します。

左サイドメニューから「Run and Debug」のボタンをクリックし、

歯車マークを押すことでlaunch.jsonファイルを開くことができます。

launch.jsonconfigurations に、args--spring.profiles.active=<環境名>を指定した設定を追加します1

今回追加した設定は以下になります(product 毎に変化する場所は必要に応じて変更してください)。

        {
            "type": "java",
            "name": "Launch SpringTutorialApplication Local",
            "request": "launch",
            "mainClass": "jp.co.who.spring_tutorial.SpringTutorialApplication",
            "projectName": "spring_tutorial",
            "args": "--spring.profiles.active=local"
        },

この設定を保存後、Debug Run の項目から、追加したRunタスクを選択できるようになります。

今回の例だと「Launch SpringTutorialApplication Local」になります2

application-local.propertyapplication-local.yaml を使って SpringBoot が起動されます。

参考


  1. 「Add Configration…」から追加することもできます。

  2. 追加した設定の「name」の値になります。