2017-01-03 7 views
0

起動時に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). 

答えて

0

ありません、それは不可能です。いくつかの組成がありませんapplication.propertiesまたはapplication.ymlです。それは物事を追跡することを非常に困難にするでしょう。 /envエンドポイントをチェックして、環境に追加されたものを確認することができます。どのプロパティソース(= "ファイル")がロードされたかを見ることもできます。

文書を読んで、私は確かにあなたがその反対を理解するかもしれないことを実感します。ドキュメントをより明確にするように問題を作成してください。

+0

複数のapplication.propertiesが動作するのは奇妙なので、もう少し研究を重ねましたが、うまくいかないことが判明しました。私は持っていた moduleA/application-dev.properties moduleB/application.properties あなたは本当に正しいです。私は/ env URLについては知らなかったが、非常に便利なことがある(しかし、同時に危険である)。 –

関連する問題