Question

I am in the process or learning erlang OTP and rebar and I have put together a small example app using a couple of dependencies: cowboy and lager.

I have issued

rebar get-deps
rebar compile

And things went smoothly. Now I want to fire up my console to test things around but it is not obvious to me how to start the dependency applications.

I tried issuing a

rebar generate 

In order to get all the orchestration of firing up the apps, even though it's overkill for just development tests, but I miserably failed getting the following dump

Crash dump was written to: erl_crash.dump
eheap_alloc: Cannot allocate 1459620480 bytes of memory (of type "old_heap").
Aborted

The ebin dir only has beam files for the app I wrote but not the dependencies, I see the dependencies have their own ebin directory inside the main app deps directory, how would I go about having them available in a console to start them up?

I would appreciate if someone can shed some light as to what the common practice is for the dev env with multiple OTP apps.

I have read a couple of tutorials but they are mostly targeted at the rebar release cycle and not the development process.

TIA

Was it helpful?

Solution

In your case, the modules you pull into the deps directory should typically be called from within your application code - and your application can be typically invoked from the Erlang shell using the application:start/1 function. If you haven't yet, I strongly suggest that you read Chapter 12, "OTP Behaviors", of Francesco Cesarini's excellent book Erlang Programming - it's a great practical introduction for what you're attempting.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top