2016-08-01 6 views
0

Я пытаюсь интегрировать rebar3 в свой проект, но по какой-то причине я не могу заставить его находить и разрешать зависимости при запуске приложения.Рабочий пример проекта с использованием Rebar3

Зависимости загружаются и помещаются в соответствующие папки в проекте, и приложение компилируется без ошибок, но функции из зависимостей не определены, если я вызываю их из приложения проекта или из Erlang REPL.

Я думаю, что мне не хватает какой-то небольшой точки, но не могу понять, что именно.

Мой rebar.config так просто, как это:

{erl_opts, [debug_info]}. 
{ 
    deps, [ 
    {jsx} 
] 
}. 
{cover_enabled, true}. 

РЭПО проект here.

Можете ли вы поделиться ссылкой на простой пример проекта, где зависимости присутствуют в файле rebar.config и успешно используются в коде приложения?

+0

Как вы начинаете Erlang REPL? Я могу запустить 'jsx: encode (# {})' просто отлично от 'rebar3 shell' после клонирования вашего проекта и компиляции. – Dogbert

+0

Я просто запускаю 'erl' внутри проекта, чтобы увидеть repl. Когда я запускаю 'rebar3 compile', я запускаю' erl' внутри '_build/default/lib/pokerspace/ebin'. –

ответ

1

, но тогда функции из зависимостей не определены, если я называю их внутри приложения проекта или из Erlang REPL

Для того, чтобы загрузить все зависимости в REPL, вам необходимо запустить REPL используя rebar3 shell. rebar3 shell вызывает erl с правильными аргументами, так что пути всех зависимостей проекта добавляются к Code Path Erlang. Команда также принимает множество флагов и аргументов; вы можете просмотреть полный список и описание, запустив rebar3 help shell.

+0

Спасибо, человек, это сработало, по достоинству оцените ответ! –