Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-5980

DependencyGraphBuilder gives different results depending on the order of dependencies in the pom

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Bug
    • None
    • None
    • Dependencies, Plugin API
    • None
    • Kubuntu 14.10
      Java 8
      Maven 3.0.5/3.3.9
      maven-dependency-tree 2.1/3.0

    Description

      I'm getting different results when using DependencyGraphBuilder in a plugin depending on the order in which the dependencies are defined in the pom of the project the plugin is running on. I have created some test projects to reproduce the bug.

      • actual-dependency: This is the dependency that moves when changing the order in the pom.
      • test-dependency: Depends on the actual-dependency with compile scope.
      • compile-dependency: Also depends on the actual-dependency with compile scope.
      • main-project: Depends on the test-dependency with test scope and on the compile-dependency with compile scope. Has the plugin configured.
      • plugin: Builds the dependency graph.

      When running maven with the -X switch on the main project with the test-dependency declared first in the pom I get the following dependency graph:

      [DEBUG] com.qmino:main-project:jar:1.0-SNAPSHOT
      [DEBUG]    com.qmino:test-dependency:jar:1.0-SNAPSHOT:test
      [DEBUG]       com.qmino:actual-dependency:jar:1.0-SNAPSHOT:compile
      [DEBUG]    com.qmino:compile-dependency:jar:1.0-SNAPSHOT:compile
      

      When I change the order of the dependencies I get:

      [DEBUG] com.qmino:main-project:jar:1.0-SNAPSHOT
      [DEBUG]    com.qmino:compile-dependency:jar:1.0-SNAPSHOT:compile
      [DEBUG]       com.qmino:actual-dependency:jar:1.0-SNAPSHOT:compile
      [DEBUG]    com.qmino:test-dependency:jar:1.0-SNAPSHOT:test
      

      It seems to me that the order of the dependencies shouldn't change the results. In both cases I would expect the second output, since the compile scope should overrule the test scope.

      Attachments

        1. dependency-graph-builder-bug.zip
          19 kB
          Gerrit Daniels

        Issue Links

          Activity

            People

              Unassigned Unassigned
              gerrit.daniels@gmail.com Gerrit Daniels
              Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: