Я могу запустить приложение вручную из оболочки rebar3, выполнив application:start(lager)
, а затем application:start(myapp)
. Я бы хотел, чтобы это произошло без необходимости вводить его, например, выполняя скрипт оболочки, который сообщает rebar3 запускать эти команды. Это возможно?Как получить приложение Erlang для запуска при запуске rebar3
ответ
Предполагая, что вы хотите, чтобы запустить приложение в процессе разработки вы можете сделать это следующим образом:
либо вы указываете приложения в командной строке так:
rebar3 shell --apps lager myapp
или указать в арматурной стали. config
{shell, [{apps, [lager, myapp]}]}.
, а затем просто запустите его с помощьюrebar3 shell
. Например, у меня есть приложение с именемtron
и имеет следующую строку в моем файле rebar.config:{shell, [{apps, [kernel,stdlib,cowboy,lager,tron]}]}
. Теперь, когда я запускаюrebar3 shell
, приложение erlang запускается вместе со всеми зависимостями.
Для получения дополнительной информации о rebar3 оболочке и, как вы можете использовать его, увидеть this удивительного BlogPost от создателя или официальной документации here.
Но, как вы, наверное, знаете, правильный способ запуска приложения для развертывания - сначала создать выпуск, а затем просто запустить его как исполняемый файл (прошло некоторое время с тех пор, как я построил выпуск, но тогда он был сложнее, чем это звучит, к сожалению! Хотя похоже, что rebar3, возможно, упростил работу: rebar3 releases.
Я хотел бы добавить, что вы также можете указать приложения для загрузки при запуске внутри файла myapp.app.src .
...
{applications,
[kernel,
stdlib,
anotherapp
]},
...
Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/16853514) – ppperry
спасибо за хороший ответ - было удивительно сложно получить ответ на этот, казалось бы, простой вопрос. –