void (Artifact artifact, final PackagingElementResolvingContext context, final Set<? super Artifact> processed, final Set<? super Artifact> result, final boolean withOutputPathOnly) { if (!processed.add(artifact)) { return; } if (!withOutputPathOnly || !StringUtil.isEmpty(artifact.getOutputPath())) { result.add(artifact); } ArtifactUtil.processPackagingElements(artifact, ArtifactElementType.ARTIFACT_ELEMENT_TYPE, element -> { Artifact included = element.findArtifact(context); if (included != null) { collectIncludedArtifacts(included, context, processed, result, withOutputPathOnly); } return true; }, context, false); }