2017-02-15 3 views
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を見つけることができません理解してクラッシュ傘のプロジェクト。 このタスクを正しい方法で実行する方法はありますか?

+0

'Mix.Task.run" phoenix.swagger.generate "、[" ./apps/sub_app/web/static/assets/apidocs/snappy_api_v1.json "]'を実行するとどうなりますか?これがうまくいけば、おそらくパスの問題であり、ハードコーディングされたパスは '__DIR__'を使って削除できます。 – Dogbert

+0

@Dogbertありがとう。しかし、その前にエラーが発生します。 – mayTree

答えて

0

これはphoenix_swaggerの問題でした。 この質問は終了します。

関連する問題