elixir - 当您的项目作为混合部门包含时,防止包含混合任务

标签 elixir elixir-mix hex-pm

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

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

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

最佳答案

目前 Mix 并不真正直接支持私有(private)任务的想法。几个选项是:

  • 在您的 mix.exs 中定义它(例如,作为别名)或在 tasks/my_task.exs 中创建它和 Code.require_file "tasks/my_task.exs"在您的 mix.exs 上.第二个选项不是很好,因为您将在您使用的每个混合命令上执行定义任务的代码
  • 只需使用脚本。创建 scripts目录,如果你想,然后,当你想运行它时,只需执行:mix run scripts/do_x.ex arg1 arg2 arg3
  • 关于elixir - 当您的项目作为混合部门包含时,防止包含混合任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168861/

    相关文章:

    elixir - 如何将erlang源文件添加到elixir包中以十六进制发布

    elixir - 如何关闭 Phoenix 框架中的开发错误消息?

    rest - 使用 Elixir 和 HTTPoison 访问 Azure 存储服务 REST API

    windows - 如何在 Windows 8.1 上运行 Elixir 脚本

    elixir - 如何将零分配给 Ecto 查询的零结果?

    linux - 十六进制包在 Linux 上的位置

    elixir - 自定义混合任务未加载测试环境

    elixir - 如何在自定义混合任务中从 Ecto 获取数据