diff --git a/src/rebar_prv_compile.erl b/src/rebar_prv_compile.erl index f7adbe4b..7537b63c 100644 --- a/src/rebar_prv_compile.erl +++ b/src/rebar_prv_compile.erl @@ -40,13 +40,14 @@ do(State) -> Providers = rebar_state:providers(State), Deps = rebar_state:deps_to_build(State), - copy_and_build_apps(State, Providers, Deps), + CompiledDeps = copy_and_build_apps(State, Providers, Deps), + State0 = rebar_state:merge_all_deps(State, CompiledDeps), State1 = case IsDepsOnly of true -> - State; + State0; false -> - handle_project_apps(Providers, State) + handle_project_apps(Providers, State0) end, rebar_paths:set_paths([plugins], State1), diff --git a/src/rebar_state.erl b/src/rebar_state.erl index 2c1100e3..88686e12 100644 --- a/src/rebar_state.erl +++ b/src/rebar_state.erl @@ -31,7 +31,7 @@ project_apps/1, project_apps/2, deps_to_build/1, deps_to_build/2, all_plugin_deps/1, all_plugin_deps/2, update_all_plugin_deps/2, - all_deps/1, all_deps/2, update_all_deps/2, + all_deps/1, all_deps/2, update_all_deps/2, merge_all_deps/2, namespace/1, namespace/2, deps_names/1, @@ -354,6 +354,9 @@ update_all_plugin_deps(State=#state_t{all_plugin_deps=Apps}, NewApps) -> update_all_deps(State=#state_t{all_deps=Apps}, NewApps) -> State#state_t{all_deps=Apps++NewApps}. +merge_all_deps(State=#state_t{all_deps=Apps}, UpdatedApps) when is_list(UpdatedApps) -> + State#state_t{all_deps=lists:ukeymerge(2, lists:keysort(2, UpdatedApps), lists:keysort(2, Apps))}. + namespace(#state_t{namespace=Namespace}) -> Namespace.