【问题标题】:Preventing a mix task being included when your project is included as a mix dep当您的项目作为混合部门包含时,防止包含混合任务
【发布时间】:2015-11-17 01:59:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: elixir elixir-mix hex-pm


    【解决方案1】:

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

    • 在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

    【讨论】:

      猜你喜欢
      • 2017-02-07
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 2017-04-10
      相关资源
      最近更新 更多