You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "John Lin (JIRA)" <ji...@apache.org> on 2019/04/03 03:46:00 UTC

[jira] [Created] (MDEP-646) mvn dependency:analyze mistakenly treat backward compatible classes as used undeclared

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)