diff --git a/apps/rebar/src/rebar_prv_clean.erl b/apps/rebar/src/rebar_prv_clean.erl index ffa2584eb..f0d92bb7c 100644 --- a/apps/rebar/src/rebar_prv_clean.erl +++ b/apps/rebar/src/rebar_prv_clean.erl @@ -12,7 +12,7 @@ -include("rebar.hrl"). -define(PROVIDER, clean). --define(DEPS, [app_discovery, install_deps]). +-define(DEPS, []). %% =================================================================== %% Public API @@ -37,7 +37,13 @@ do(State) -> Providers = rebar_state:providers(State), {All, Profiles, Specific} = handle_args(State), - State1 = rebar_state:apply_profiles(State, [list_to_atom(X) || X <- Profiles]), + %% Invoke provider deps as the desired profile(s) so the discovery of + %% apps respects profile options. + State0 = rebar_state:command_args( + State, + lists:join(",", ["default"|Profiles]) ++ ["install_deps"] + ), + {ok, State1} = rebar_prv_as:do(State0), Cwd = rebar_dir:get_cwd(), rebar_hooks:run_all_hooks(Cwd, pre, ?PROVIDER, Providers, State1), diff --git a/apps/rebar/test/rebar_as_SUITE.erl b/apps/rebar/test/rebar_as_SUITE.erl index 78ea8aec9..fce1efcd9 100644 --- a/apps/rebar/test/rebar_as_SUITE.erl +++ b/apps/rebar/test/rebar_as_SUITE.erl @@ -198,4 +198,5 @@ clean_as_profile(Config) -> rebar_test_utils:run_and_check(Config, [], ["clean", "-a", "-p", "foo"], - {ok, [{app, Name, invalid}]}). + {ok, [{app, Name, invalid}]}), + ok.