【发布时间】:2017-02-16 10:29:35
【问题描述】:
我在一个伞形项目的子应用(凤凰框架)中做了一个简单的任务。
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 谢谢。但错误发生在此之前。
标签: elixir