Search code examples
javamavenmaven-3pom.xmlmaven-dependency-plugin

Suppress Maven Dependency Plugin's "Unused declared dependencies found" warnings


The maven-dependency-plugin identifies what it believes to be unused dependencies when you compile by producing warnings at compile time.

[WARNING] Unused declared dependencies found:
[WARNING]    org.foo:bar-api:jar:1.7.5:compile

In some cases this message is a false positive and the dependency is required transitively.

Question: How can I identify in my pom.xml that this is the case?


Solution

  • You should configure in your pom the ignoredDependencies element:

    List of dependencies that will be ignored. Any dependency on this list will be excluded from the "declared but unused" and the "used but undeclared" list. The filter syntax is:

    [groupId]:[artifactId]:[type]:[version]
    

    where each pattern segment is optional and supports full and partial * wildcards. An empty pattern segment is treated as an implicit wildcard. *

    As also specified by the official Exclude dependencies from dependency analysis. A sample configuration would be:

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>analyze-dep</id>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <configuration>
                            <ignoredDependencies>
                                <ignoredDependency>org.foo:bar-api:jar:1.7.5</ignoredDependency>
                            </ignoredDependencies>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>