当您的项目作为混合 dep 包含时,防止包含混合任务
Preventing a mix task being included when your project is included as a mix dep
我正在编写的一个 Elixir 库有两个自定义混合任务,一个是供那些将我的库作为他们项目的依赖项的用户使用,另一个是只在我的项目中使用。
这里的问题是,在将我的添加为 dep 后,用户在他们的项目中可以使用这两个混合任务。
如何防止这种情况发生?我试图在我的 Mix 配置中避免 package: [ files: [ etc ] ]
中的任务,但它在我的测试项目中仍然可用,该项目通过 git.
将我的库指定为 dep
目前 Mix 并不直接支持私人任务的想法。几个选项是:
在您的 mix.exs
中定义它(例如,作为别名)或在您的 [=10= 之上的 tasks/my_task.exs
和 Code.require_file "tasks/my_task.exs"
中创建它].第二个选项不是很好,因为您将在您使用的每个混合命令上执行定义任务的代码
只需使用脚本。如果需要,请创建一个 scripts
目录,然后,当您想要 运行 它时,只需执行以下操作:mix run scripts/do_x.ex arg1 arg2 arg3
我正在编写的一个 Elixir 库有两个自定义混合任务,一个是供那些将我的库作为他们项目的依赖项的用户使用,另一个是只在我的项目中使用。
这里的问题是,在将我的添加为 dep 后,用户在他们的项目中可以使用这两个混合任务。
如何防止这种情况发生?我试图在我的 Mix 配置中避免 package: [ files: [ etc ] ]
中的任务,但它在我的测试项目中仍然可用,该项目通过 git.
目前 Mix 并不直接支持私人任务的想法。几个选项是:
在您的
mix.exs
中定义它(例如,作为别名)或在您的 [=10= 之上的tasks/my_task.exs
和Code.require_file "tasks/my_task.exs"
中创建它].第二个选项不是很好,因为您将在您使用的每个混合命令上执行定义任务的代码只需使用脚本。如果需要,请创建一个
scripts
目录,然后,当您想要 运行 它时,只需执行以下操作:mix run scripts/do_x.ex arg1 arg2 arg3