起動時にLiquibaseをロードする必要があるSpring Boot 1.4.3プロジェクトがあります。それは簡単な設定でなければなりませんが、私は以下の作業をするために多くの時間を費やしました。SpringブートLiquibaseがすべてのapplication.ymlファイルを取得しない
ModuleA(通常のjar)とModuleB(ブートストラップされたjar)を考えてみましょう。 ModuleBはmoduleAに依存しているので、moduleBが起動すると、moduleAはクラスパス上にあります。
ModuleAには、いくつかの一般的なプロパティが含まれています。これらのプロパティはapplication.ymlでエンコードされ、一部はapplication.propertiesファイルにエンコードされています。 ModuleBには、より具体的なプロパティを持つapplication.ymlファイルもあります。
ModuleAでは、私は自分のLiquibaseプロパティをapplication.ymlファイルに定義しました。 ModuleBの起動時に、liquibaseのプロパティが利用可能であると予想されます。しかし、これは動作しません。
ModuleAのapplication.propertiesにliquibaseプロパティを置くと、ModuleBの起動時にプロパティが選択されます。
私の質問はです:classpathに2つの 'application.yml'ファイルを持つことは不可能ですか?私はdocumentationでそれについて何も見つけないと実際には、最初の部分でそれが可能であることを述べて:
14. Application properties outside of your packaged jar (application.properties and YAML variants).
15. Application properties packaged inside your jar (application.properties and YAML variants).
複数のapplication.propertiesが動作するのは奇妙なので、もう少し研究を重ねましたが、うまくいかないことが判明しました。私は持っていた moduleA/application-dev.properties moduleB/application.properties あなたは本当に正しいです。私は/ env URLについては知らなかったが、非常に便利なことがある(しかし、同時に危険である)。 –