Q:

Gradle adding random dependencies?

Apparently gradle for some reason seems to think that my 'spring data' dependency on slf4j. Here is the dependency graph that gradle prints out
org.springframework.data:spring-data-commons:1.5.1.RELEASE       
+--- org.springframework:spring-core:3.1.4.RELEASE (*)           
+--- org.springframework:spring-beans:3.1.4.RELEASE (*)          
+--- org.slf4j:slf4j-api:1.7.1                                   
\--- org.slf4j:jcl-over-slf4j:1.7.1

Though spring data commons in fact does not have a dependency on slf4j:
http://mvnrepository.com/artifact/org.springframework.data/spring-data-commons/1.5.1.RELEASE
Why does gradle randomly add that dependency on slf4j?
Also next to some dependencies I see the '*' symbol, which apparently denotes:
(*) - dependencies omitted (listed previously)

Now why is this so? Why are some dependencies omitted?

A:

Gradle isn't randomly adding dependencies. The spring-data-commons module inherits an slf4j dependency from its parent POM.
The dependencies of spring-core and spring-beans are omitted for readability because they were already listed higher up in the dependency graph output.

