web-dev-qa-db-ja.com

コマンドラインでタイプセーフな構成リストの値をオーバーライドするにはどうすればよいですか?

次のような構造のapplication.confファイルがあります。

poller {
  datacenters = []
}

コマンドラインで"datacenters"をオーバーライドしたい。

値が単純なタイプ(文字列、数値)である他の構成キーの場合、-Dpath.to.config.value=<value>を使用してオーバーライドできます。これは正常に機能します。

しかし、私はlist sに対してこれを行う方法を見つけることができないようです。上記の例では、"datacenters"["SJC", "IAD"]-Dpoller.datacenters="['SJC', 'IAD']"に設定しようとしましたが、キー値がリストではなく文字列であるという例外が発生します。

この値がリストであることをタイプセーフな設定ライブラリに通知する方法はありますか?

41
Michael Frank

このための代替構文がバージョン1.0.1に実装されています。

-Dpoller.datacenters.0=SJC -Dpoller.datacenters.1=IAD
63
Patrik Nordwall

私は数週間前に同じ問題を抱えていて、最終的に何が起こっているのかを理解するためにソースコードに飛び込みました:

  • この機能は実装されていません。コマンドライン引数を使用してリストを定義することはできません

修正はそれほど難しくありませんが、誰かが時間をかけて修正する必要があります。

3
Alois Cochard