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

artifact.getDependencyTrail() doesn't include full information; causes problems filtering artifacts by transitive dependency trail

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Incomplete
    • 2.2.1, 3.0-beta-3
    • None
    • None

    Description

      Artifact.getDependencyTrail() is a List, not a graph. This means the artifact doesn't include information about every artifact that depends on that artifact.

      In cases where the project's artifacts are filtered using the dependency trail, it can become impossible to capture the full dependency closure for an included artifact if that artifact depends on something that an excluded artifact also depends on.

      For a concrete example / test case of this, see MASSEMBLY-504.

      In this example, A and B both depend on C. However, the dependencySet excludes B from the assembly. By luck of the draw, profile dependencies are appended to the project's other dependencies, and B is in the dependencyTrail of C, not A (both are valid to be there). Since transitive filtering is enabled, C is excluded from the assembly along with B, and the classpath for A is not fully represented.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jdcasey John Dennis Casey
              Votes:
              5 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: