How to find the parent of a Maven transitive dependency

eclipse, log4j, maven, spring, spring-mvc

Solution

If you want to rely on maven only you may want to take a closer look on the dependency plugin, here are two examples:

`mvn dependency:tree -Dverbose` will display more detailed information - especially for example if a artifact will be omitted for conflicting with another artifacts version (e.g. convergence issue). It will also display you the hirachy with all the transitive dependencies.

To have a specific artefact analyzed (to for example find who delivers a specific transitive dependency) you can specify like so:

`mvn dependency:tree -Dincludes=com.my.group.id:my-artefact-id:jar:1.0.1 -Dverbose`

(Where you obviously need to adjust the artefact, packaging type and version according to your needs)

Problem

I am building a Java (web) application with Maven and Eclipse. When I look inside my `.war` file I can see the following logging libraries there: ``` log4j-1.2.14.jar log4j-1.2.17.jar slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar ``` I did not declared these libraries in my `pom.xml`, so they probably are transitive dependencies (i.e. dependencies of my dependencies). How can I find out which of my dependencies depend on these libraries? I tried to use the `mvn dependency:tree` plugin, but it does not show any of these `.jar`s. In Eclipse, the `Java Resources > Libraries > Maven Dependencies` node does not show them either. Though, curiously, it shows other transitive dependencies of my project.

Original source