Mix.Task
Mix.Task行为
一个简单的模块,为创建,加载和操作任务提供了便利。
一个混合任务可以通过Mix.Task
在一个以Mix.Tasks.
该run/1
函数开始并定义该函数的模块中简单地使用来定义:
defmodule Mix.Tasks.Echo do
use Mix.Task
def run(args) do
Mix.shell.info Enum.join(args, " ")
end
end
run/1
函数将接收传递给命令行的所有参数的列表。
属性
混合任务中有几个属性可用于在混合任务中配置它们:
@shortdoc
-使用出现在mix help
@recursive
-在伞式项目中递归地运行任务
@preferred_cli_env
- 建议运行任务的环境。它用于没有Mix项目建议的情况下,或者MIX_ENV
仅用于当前项目中的任务。@preferred_cli_env
没有从依赖关系加载,因为在依赖关系加载之前我们需要知道环境。
文献资料
用户可以通过运行来阅读公共混音任务的文档mix help my_task
。将显示的文档是@moduledoc
任务模块的文档。
摘要
类型
task_module()task_name()
功能
alias?(task)
检查是否task
存在调用的别名
all_modules()
返回所有加载的任务模块。
clear()
清除所有调用的任务,允许重新调用它们。
get(task)
接收任务名称,如果找到任务模块,则返回任务模块。
get!(task)
接收任务名称并检索任务模块。
load_all()
加载所有代码路径中的所有任务
load_tasks(dirs)
加载给定任务中paths
的所有任务。
moduledoc(module)
获取给定任务的module
doc。module
preferred_cli_env(task)
获取任务的首选cli环境。
ecursive(module)
检查是否应该对伞式项目中的所有子应用程序递归地运行该任务。
reenable(task)
重新启用给定的任务,以便它可以在堆栈中再次执行。
rerun(task, args \ [])
task
与给定的论点重演
run(task, args \ [])
运行一个task
与给定args
shortdoc(module)
获取给定任务的shortdoc module
task?(module)
返回true
给定模块是否是任务
task_name(module)
返回给定的任务名称 module
回调
run(command_line_args)
一个任务需要实现run
,它接收一个命令行参数列表
类型
task_module()
task_module() :: atom
task_name()
task_name() :: String.t | atom
功能
alias?(task)
alias?(task_name) :: boolean
检查别名是否调用task
存在。
有关任务别名的更多信息,请参阅文档中的“别名”部分Mix
。
all_modules()
all_modules() :: [task_module]
返回所有加载的任务模块。
尚未加载的模块将不会显示。检查load_all/0
是否要预先加载所有任务。
clear()
clear() :: :ok
清除所有调用的任务,允许重新调用它们。
此操作不是递归操作。
get(task)
get(task_name) :: task_module | nil
接收任务名称,如果找到任务模块,则返回任务模块。
否则,返回nil
模块存在的情况下,但它不是任务或无法找到。
get!(task)
get!(task_name) :: task_module | no_return
接收任务名称并检索任务模块。
例外
Mix.NoTaskError
- 如果找不到任务则提出
Mix.InvalidTaskError
- 如果任务不是有效的,则提出Mix.Task
load_all()
load_all() :: [task_module]
加载所有代码路径中的所有任务。
load_tasks(dirs)
load_tasks([List.Chars.t]) :: [task_module]
Loads all tasks in the given paths
.
moduledoc(module)
moduledoc(task_module) :: String.t | nil
获取给定任务的module
doc module
。
返回moduledoc或nil
。
preferred_cli_env(task)
preferred_cli_env(task_name) :: atom | nil
获取该任务的首选CLI环境。
返回环境(例如:test
,或:prod
)或nil
。
recursive(module)
recursive(task_module) :: boolean
检查是否应该为伞形项目中的所有子应用递归运行任务。
返回true
或false
。
reenable(task)
reenable(task_name) :: :ok
重新启用一个给定的任务,以便它可以在堆栈中再次执行。
调用此函数时,将重新启用别名和常规堆栈。
如果伞式项目重新启用任务,则将为所有子项目重新启用该任务。
rerun(task, args \ [])
rerun(task_name, [any]) :: any
task
与给定的论点重演。
该函数重新执行给定的任务;要做到这一点,它首先重新启用任务,然后像平常一样运行。
run(task, args \ [])
run(task_name, [any]) :: any
运行task
给定的args
。
如果尚未调用该任务,则运行该任务并返回结果。
如果有同名别名,则将调用别名而不是原始任务。
如果任务或别名已被调用,则不会再运行它们,只是简单地中止:noop
。
如果找不到别名或任务或任务无效,它可能会引发异常。检查get!/1
更多信息。
shortdoc(module)
shortdoc(task_module) :: String.t | nil
获取给定任务的shortdoc module
。
返回shortdoc或nil
。
task?(module)
task?(task_module) :: boolean
回报true
如果给定模块是一项任务。
task_name(module)
task_name(task_module) :: task_name
返回给定的任务名称module
。
回调
run(command_line_args)
run(command_line_args :: [binary]) :: any
一个任务需要实现run
,它接收一个命令行参数列表。