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
Attachments
Issue Links
- is depended upon by
-
MASSEMBLY-357 transitive dependencies erroneously excluded from dependencySet in some cases
- Closed
-
MASSEMBLY-504 Transitive dependencies missing when two deps rely on them, but one of the deps is excluded
- Closed