1

play2.1.0 アプリケーションに次の conf ファイルがあります

  • アプリケーション.conf
  • override.dev.conf
  • override.qa.conf
  • override.prod.conf

またapplication.mode、application.conf ファイルには、dev/qa/prod 値のいずれかを持つプロパティがあります。

application.conf には、オーバーライドとして env/mode 固有の conf ファイルを含める行もあります。これは、置換で機能しないものです。

理由: env/mode 固有の conf ファイルにオーバーライド プロパティを含めるため。

参照: http://www.playframework.com/documentation/2.0/Configuration

includeキーの先頭の引用符で囲まれていない文字列の後に、一重引用符で囲まれた文字列以外のものが続く場合、それは無効であり、エラーが生成されます。

置換は許可されず、引数は引用符で囲まれていない文字列やその他の種類の値であってはなりません。

試した:

  1. 別のプロパティの置換を行うことはできますが、includeこのようなものはできません

    my.prop="override."${?application.mode}".conf"

    上記の出力はoverride.dev.confifapplication.mode=dev

  2. 以下のようなものがある場合、機能していません。ドキュメントの参照に従って期待されるものだと思います。

    include "override."${?application.mode}".conf"

    上記は、という名前のファイルに小道具を含める/上書きすることを期待していましたoverride.dev.conf

質問:

  • これは将来の拡張である必要がありますか、それとも期待されていることですか?
  • 私が望んでいたことを実装する他の方法は何ですか?

どんな助けでも本当に感謝しています。

4

2 に答える 2

1

PlayFramework 2GlobalSettings.onLoadConfigで説明されているように、現在のモードに応じて異なる構成をロードすることを好みます。これは Scala で行われますが、Java でも同様に実行できるはずです。

コマンドライン引数でアプリケーションを起動する必要なく、非常に優れた方法で構成をオーバーロードできます。それでも、、などでアプリを起動しplay runますplay start

Play では既知のモードではないため、に変更するoverride.qa.confと、このメソッドを使用できるはずです。override.test.confqa

のすべての共有設定はapplication.conf、他の設定でオーバーライドされます。

于 2013-08-13T11:46:41.413 に答える