John Lin created MDEP-646:
-----------------------------

             Summary: mvn dependency:analyze mistakenly treat backward 
compatible classes as used undeclared
                 Key: MDEP-646
                 URL: https://issues.apache.org/jira/browse/MDEP-646
             Project: Maven Dependency Plugin
          Issue Type: Bug
          Components: analyze
    Affects Versions: 3.1.1
            Reporter: John Lin


I have the following dependency in my {{pom.xml}}:

{code}
    <dependency>
      <groupId>org.apache.cassandra</groupId>
      <artifactId>cassandra-all</artifactId>
      <version>2.1.8</version>
    </dependency>
{code}

Then a piece of code in my app:

{code}
import java.util.concurrent.ConcurrentHashMap;

public class App {
    public void foo () {
        ConcurrentHashMap<String, String> m = new ConcurrentHashMap<>();
        ...
    }
}
{code}

Then {{mvn dependency:analyze}} will find a used undeclared dependency:

{code}
[WARNING] Used undeclared dependencies found:
[WARNING]    com.boundary:high-scale-lib:jar:1.0.6:compile
{code}

It turns out that {{cassandra-all}} has a dependency on {{high-scale-lib}}, and 
{{high-scale-lib}} implemented a {{java.util.concurrent.ConcurrentHashMap}} for 
backward compatibility.

In fact, my app use the built-in {{ConcurrentHashMap}} in JDK, not the 
{{ConcurrentHashMap}} from {{high-scale-lib}}. So I believe that it is 
incorrect for the dependency analysis to report it as used.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to