Как запустить приложение Erlang при запуске rebar3

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


person HH- Apologize to Carole Baskin    schedule 24.10.2016    source источник


Ответы (2)


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

  • либо вы указываете приложения в командной строке следующим образом: rebar3 shell --apps lager myapp

  • или вы указываете в rebar.config {shell, [{apps, [lager, myapp]}]}., а затем просто запускаете его с rebar3 shell. Например, у меня есть приложение с именем tron, и в моем rebar.config есть следующая строка: {shell, [{apps, [kernel,stdlib,cowboy,lager,tron]}]}. Теперь, когда я запускаю rebar3 shell, мое приложение erlang запускается вместе со всеми зависимостями.

Дополнительную информацию о оболочке rebar3 и о том, как ее использовать, см. В этом замечательном сообщении в блоге от создателя, или официальную документацию здесь.

Но, как вы, вероятно, знаете, правильный способ запустить приложение для развертывания - сначала создать выпуск, а затем просто запустить его как исполняемый файл (с тех пор, как я создал выпуск, прошло некоторое время, но тогда он К сожалению, было сложнее, чем кажется! Хотя похоже, что rebar3, возможно, упростил задачу: rebar3 выпускает.

person Limmen    schedule 30.10.2016
comment
спасибо за хороший ответ - получить ответ на этот, казалось бы, простой вопрос оказалось на удивление сложно. - person HH- Apologize to Carole Baskin; 30.10.2016

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

...
{applications,
   [kernel,
    stdlib,
    anotherapp
   ]},
...
person nextloop    schedule 27.07.2017
comment
$ rebar3 shell не запускает приложения, перечисленные в кортеже applications, когда я пробую его, даже если rebar3 docs похоже, говорят, что это способ запустить зависимые приложения. :( - person 7stud; 26.01.2019