1. ホーム

[解決済み】spring bootでコマンドラインからアクティブなプロファイルと設定場所を設定する。

2022-04-01 15:58:49

質問

Spring Bootアプリケーションを持っています。

私のアプリケーションには3つのプロファイルがあります-> 開発、ステージング、本番 . そのため、3つのファイルがあります。

  1. アプリケーション開発.yml
  2. application-staging.yml
  3. アプリケーション-プロダクション.yml

私の application.yml の中に入っています。 src/main/resources . application.yml でアクティブなプロファイルを次のように設定しました。

spring:
  profiles.active: development

他の3つのプロファイル固有の設定ファイルは C:\config フォルダーに格納されます。

eclipseのgradleプラグインを使用しています。私が"を実行しようとしたとき。 ブートラン eclipse の gradle 設定で、コマンドライン引数を次のように設定しています。

 -Dspring.profiles.active=staging -Dspring.config.location=C:\Config

しかし、コマンドラインのプロパティは反映されず、私のアクティブなプロファイルは常にdevelopment(applications.ymlファイルに記述したもの)に設定されています。また、C:⇄Configフォルダはプロファイル固有の設定ファイルのために検索されません。

私はここで何かを見逃しているようです。この2日間、それを理解しようとしています。しかし、うまくいきません。私は本当にどんな助けでも感謝します。

解決方法は?

これを追加する必要がありました。

bootRun {
    String activeProfile =  System.properties['spring.profiles.active']
    String confLoc = System.properties['spring.config.location']
    systemProperty "spring.profiles.active", activeProfile
    systemProperty "spring.config.location", "file:$confLoc"
}

そして、今度はbootRunがプロファイルとコンフィグの場所をピックアップします。

ポインターをくれた@jstさん、どうもありがとうございます。