Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 894
vpiTriumph Avatar asked Apr 12 '16 12:04

vpiTriumph


2 Answers

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>
like image 134
A_Di-Matteo Avatar answered Oct 11 '22 03:10

A_Di-Matteo


That was nearly what i was looking for, but i guess you specify that a little more like:

<execution>
  <goals>
     <goal>analyze-only</goal>
  </goals>
  <configuration>
  <failOnWarning>true</failOnWarning>
  <ignoredUnusedDeclaredDependencies>
      <ignoredUnusedDeclaredDependency>org.reflections:reflections:*</ignoredUnusedDeclaredDependency>
  </ignoredUnusedDeclaredDependencies>
  <ignoredUsedUndeclaredDependencies>
      <ignoredUsedUndeclaredDependency>junit:*:*</ignoredUsedUndeclaredDependency>
  </ignoredUsedUndeclaredDependencies>
  <ignoreNonCompile>false</ignoreNonCompile>
  <outputXML>true</outputXML>
  </configuration>
 </execution>

So this does nearly the same but is more specific on which kind of dependencies should be ignored

like image 27
user9130454 Avatar answered Oct 11 '22 03:10

user9130454