0
私は傘プロジェクトのサブアプリケーション(phoenixフレームワーク)で簡単なタスクを作った。傘プロジェクトのルートクラッシュでサブアプリケーションのミックスタスクを実行
defmodule Mix.Tasks.Apidocs do
defmodule Generate do
use Mix.Task
@shortdoc "Crawls products for a given store id, or all stores if no store id is given."
def run([]) do
Mix.Task.run "compile"
Mix.Task.run "phoenix.swagger.generate", ["./web/static/assets/apidocs/snappy_api_v1.json"]
end
end
end
私は./apps/sub_app/
でそれを実行したときにそれがうまく動作しますが、それは私が傘プロジェクト(./
)
** (UndefinedFunctionError) function Example.Mixfile.application/0 is undefined or private
Example.Mixfile.application()
lib/mix/tasks/swagger.generate.ex:45: Mix.Tasks.Phoenix.Swagger.Generate.run/1
(mix) lib/mix/task.ex:294: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2
(elixir) lib/code.ex:370: Code.require_file/2
のルートでそれを実行したとき、私はそれがでapplication
を見つけることができません理解してクラッシュ傘のプロジェクト。 このタスクを正しい方法で実行する方法はありますか?
'Mix.Task.run" phoenix.swagger.generate "、[" ./apps/sub_app/web/static/assets/apidocs/snappy_api_v1.json "]'を実行するとどうなりますか?これがうまくいけば、おそらくパスの問題であり、ハードコーディングされたパスは '__DIR__'を使って削除できます。 – Dogbert
@Dogbertありがとう。しかし、その前にエラーが発生します。 – mayTree