2016-06-14 1 views
2

私はElixir傘プロジェクトを持っています。このプロジェクトの各アプリは、mix escript.buildを使用して実行可能ファイルにコンパイルできます。傘プロジェクトのルートにミックスタスクを作成するにはどうすればいいですか?

私は傘プロジェクトのルートからこのコマンドを実行しようとすると、これは動作しませんなぜ私が理解し、次のエラー

** (RuntimeError) Trying to access Mix.Project.app_path for an umbrella project but umbrellas have no app 

を得ています。そこで、傘プロジェクトのルートにカスタムミックスタスクを作成しようとしました。ルートにはlibというディレクトリがないので、追加してミックスタスクを作成しました。しかし、それはmix helpに記載されていません。

傘プロジェクトのルートでカスタムミックスタスクを定義するにはどうすればよいですか?

答えて

8

あなたの傘のプロジェクトにはコードがありません。それは、傘の中のアプリケーションが傘の中にあってもいなくても動作するためです。複数のアプリケーション間で共有されるタスクを作成する場合は、他のアプリケーションと同様に通常のアプリケーション内で定義し、他のアプリケーションと同様にタスクを使用する他のアプリケーションに依存させる必要がありますコードの

+0

ありがとうございました。それは理にかなっている。しかし、今では、ルートレベルで 'mix.exs'を持っているという全体の点が欠けています。私は 'deps'がすべてのサブプロジェクトに利用可能になると付け加えたと思っていた。それはそうではないように見えます。ルートレベルで 'mix.exs'と' deps'が必要なのはなぜですか? –

+2

あなたはそれらをめったに使用しません。私が傘のデープのために考えることができる唯一のユースケースは、あなたが傘のレベルで実行したいミックスタスクのためのものです。 –

関連する問題