List<String> (List<? extends PackagingElement<?>> elements, PackagingElementResolvingContext context, final ArtifactType artifactType) { final List<String> classpath = new ArrayList<>(); final PackagingElementProcessor<PackagingElement<?>> processor = new PackagingElementProcessor<>() { @Override public boolean process(@NotNull PackagingElement<?> element, @NotNull PackagingElementPath path) { if (element instanceof FileCopyPackagingElement) { final String fileName = ((FileCopyPackagingElement)element).getOutputFileName(); classpath.add(DeploymentUtil.appendToPath(path.getPathString(), fileName)); } else if (element instanceof DirectoryCopyPackagingElement) { classpath.add(path.getPathString()); } else if (element instanceof ArchivePackagingElement) { final String archiveName = ((ArchivePackagingElement)element).getName(); classpath.add(DeploymentUtil.appendToPath(path.getPathString(), archiveName)); } return true; } }; for (PackagingElement<?> element : elements) { ArtifactUtil.processPackagingElements(element, null, processor, context, true, artifactType); } return classpath; }