Как создать задачу Mix в корне зонтичного проекта?

У меня есть Elixir зонтичный проект. Каждое приложение в этом проекте можно скомпилировать в исполняемый файл с помощью mix escript.build.

Я пытаюсь запустить эту команду из корня зонтичного проекта и получаю следующую ошибку

** (RuntimeError) Trying to access Mix.Project.app_path for an umbrella project but umbrellas have no app

Я понимаю, почему это не сработает. Итак, попытался создать пользовательскую задачу микширования в корне зонтичного проекта. Поскольку в корне нет каталога lib, я добавил его и создал внутри него задачу смешивания. Но этого нет в mix help.

Как я могу определить настраиваемую задачу микширования в корне зонтичного проекта?


person Navaneeth K N    schedule 14.06.2016    source источник
comment
Этот вопрос меня изначально смутил. Вы говорите о выполнении задачи смешивания escript.build для каждого проекта в зонтике, а затем - когда это не работает - вы переходите к созданию новой задачи смешивания. К сожалению, это означает, что ответ Хосе не решает мою проблему. Думаю, открою новый.   -  person Roger Lipscombe    schedule 14.11.2019
comment
Я нашел github.com/vic/mix_under, который устарел, но может помочь с исходным вопросом.   -  person Roger Lipscombe    schedule 14.11.2019


Ответы (1)


У ваших зонтичных проектов нет кода. Это потому, что приложения в зонтике предназначены для работы независимо от того, находятся они внутри зонтика или нет. Если вы хотите, чтобы задача была распределена между несколькими приложениями, вы должны определить ее внутри обычного приложения в зонтике, как и любое другое, и сделать так, чтобы другие приложения, использующие задачу, зависели от нее, как и для любой другой части. кода.

person José Valim    schedule 14.06.2016
comment
Спасибо. В этом есть смысл. Но теперь мне не хватает самого смысла наличия mix.exs на корневом уровне. Я думал, что добавленные там deps станут доступны для всех подпроектов. Похоже, это не так. Зачем вам нужны mix.exs и deps на корневом уровне? - person Navaneeth K N; 15.06.2016
comment
Вы редко их используете. Единственный вариант использования, который я могу придумать для deps в зонтике, - это смешанные задачи, которые вы хотите запускать на уровне зонтика. - person José Valim; 15.06.2016