Konfiguracje pozwalają na zależności zakresu. Biorąc pod uwagę tę hierarchię konfiguracji:
testRuntime -> testCompile -> runtime -> compile
Każda konfiguracja pomaga ograniczyć liczbę zależności. * Konfiguracje środowiska wykonawczego pozwalają uwzględnić zależność, ale nie mają jej jako zależności od kompilacji. Jest to przydatne, gdy chcesz zachować luźno powiązaną strukturę z projektu. Zależność od środowiska wykonawczego oznacza, że jest ona potrzebna do uruchomienia aplikacji, ale nie jest potrzebna do jej kompilacji.
To samo dotyczy konfiguracji testowych *.
Ref: