2017-07-18 6 views
0

私は下に複数のアプリケーションを持つエリクシール傘アプリケーション(A)を持っています。そのうちの1つ(B)は独立したリポジトリで定義され、独自のconfig(config/config.exs)ファイルを含みます。ほとんどの場合、デフォルト値が使用されます。エリクシール傘アプリケーションで複数のアプリケーション設定ファイルを処理する方法

アプリケーションBをAに追加して傘アプリケーションを開始すると、アプリケーションBの構成がロードされません。私は明示的にBのすべての設定パラメータをA configに含める必要があるようです。

私は、アプリケーションBの設定はまだアプリケーションAで利用できると思いますが、私はいくつかの特定の値をオーバーライドするだけです。

誰も私の主なアプリケーション(A)設定ファイルですべての設定パラメータを再度指定せずにそれを達成する方法を教えてもらえますか?

答えて

2

mix new --umbrellaで生成された傘アプリケーションには、すべてのアプリケーションのconfigsが自動的に組み込まれます。

your_project/apps/app_a/mix.exsでは、傘のルートから設定を読み込むように設定する必要があります。

use Mix.Config 

# By default, the umbrella project as well as each child 
# application will require this configuration file, ensuring 
# they all use the same configuration. While one could 
# configure all applications here, we prefer to delegate 
# back to each application for organization purposes. 
import_config "../apps/*/config/config.exs" 
+0

感謝:

build_path: "../../_build", config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", 

そしてyour_project/config/config.exsで、それはすべてのアプリケーション設定を含める必要があります。アプリケーションが 'apps'ディレクトリにインライン化されるのではなく、依存関係としてどのように動作するのでしょうか? – mkorszun

+1

申し訳ありませんが、あるパッケージのデフォルトを別のパッケージで使用するように設定するには、 'mix.exs'に値を入れてください(https://stackoverflow.com/a/43304305/1650580を参照)。 –

関連する問題