Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 当项目作为混合dep包含时,防止包含混合任务_Elixir_Elixir Mix_Hex Pm - Fatal编程技术网

Elixir 当项目作为混合dep包含时,防止包含混合任务

Elixir 当项目作为混合dep包含时,防止包含混合任务,elixir,elixir-mix,hex-pm,Elixir,Elixir Mix,Hex Pm,我正在编写的Elixir库有两个自定义混合任务,一个用于将我的库作为其项目依赖项的用户,另一个用于仅在我的项目中使用 这里的问题是,在用户将我的任务添加为dep后,他们的项目中的两个混合任务都可用 我如何防止这种情况?我试图在我的Mix配置中避免使用包:[files:[etc]]中的任务,但在通过git将我的库指定为dep的测试项目中仍然可以使用该任务。目前Mix实际上并不直接支持私有任务。以下是几个选项: 在mix.exs中定义它(例如,作为别名),或者在tasks/my_task.exs和

我正在编写的Elixir库有两个自定义混合任务,一个用于将我的库作为其项目依赖项的用户,另一个用于仅在我的项目中使用

这里的问题是,在用户将我的任务添加为dep后,他们的项目中的两个混合任务都可用


我如何防止这种情况?我试图在我的Mix配置中避免使用包:[files:[etc]]中的任务,但在通过git将我的库指定为dep的测试项目中仍然可以使用该任务。

目前Mix实际上并不直接支持私有任务。以下是几个选项:

  • mix.exs
    中定义它(例如,作为别名),或者在
    tasks/my_task.exs
    code.require_文件“tasks/my_task.exs”
    中在
    mix.exs
    上创建它。第二个选项不是很好,因为您将在使用的每个mix命令上执行定义任务的代码

  • 只需使用脚本。如果需要,创建一个
    scripts
    目录,然后,当您想要运行它时,只需执行以下操作:
    mix run scripts/do_x.ex arg1 arg2 arg3