2016-10-24 8 views
0

Я могу запустить приложение вручную из оболочки rebar3, выполнив application:start(lager), а затем application:start(myapp). Я бы хотел, чтобы это произошло без необходимости вводить его, например, выполняя скрипт оболочки, который сообщает rebar3 запускать эти команды. Это возможно?Как получить приложение Erlang для запуска при запуске rebar3

ответ

6

Предполагая, что вы хотите, чтобы запустить приложение в процессе разработки вы можете сделать это следующим образом:

  • либо вы указываете приложения в командной строке так: 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.

+1

спасибо за хороший ответ - было удивительно сложно получить ответ на этот, казалось бы, простой вопрос. –

-1

Я хотел бы добавить, что вы также можете указать приложения для загрузки при запуске внутри файла myapp.app.src .

... 
{applications, 
    [kernel, 
    stdlib, 
    anotherapp 
    ]}, 
... 
+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (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

 Смежные вопросы

  • Нет связанных вопросов^_^