Предотвращение включения смешанной задачи, когда ваш проект включен как смешанная задача

Библиотека Elixir, которую я пишу, имеет две пользовательские задачи смешивания, одна предназначена для использования пользователями, которые сделали мою библиотеку зависимой от своего проекта, а другая предназначена для использования только в моем проекте.

Проблема здесь в том, что обе задачи смешивания доступны пользователям в их проектах после того, как они добавили мою в качестве деп.

Как мне предотвратить это? Я пытался избежать задачи в package: [ files: [ etc ] ] в моей конфигурации Mix, но она все еще была доступна в моем тестовом проекте, который указывает мою библиотеку как dep через git.


person lpil    schedule 23.08.2015    source источник


Ответы (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

person José Valim    schedule 24.08.2015