protected Set<Artifact> resolveDependencyArtifacts(final DependencySet dependencySet) throws InvalidAssemblerConfigurationException { final Set<Artifact> dependencyArtifacts = new LinkedHashSet<Artifact>(); if (resolvedArtifacts != null) { dependencyArtifacts.addAll(resolvedArtifacts); } if (dependencySet.isUseProjectArtifact()) { final Artifact projectArtifact = project.getArtifact(); if ((projectArtifact != null) && (projectArtifact.getFile() != null)) { dependencyArtifacts.add(projectArtifact); } else { logger.warn( "Cannot include project artifact: " + projectArtifact + "; it doesn't have an associated file or directory."); } } if (dependencySet.isUseProjectAttachments()) { @SuppressWarnings("unchecked") final List<Artifact> attachments = project.getAttachedArtifacts(); if (attachments != null) { for (final Iterator<Artifact> attachmentIt = attachments.iterator(); attachmentIt.hasNext(); ) { final Artifact attachment = attachmentIt.next(); if (attachment.getFile() != null) { dependencyArtifacts.add(attachment); } else { logger.warn( "Cannot include attached artifact: " + project.getId() + " for project: " + project.getId() + "; it doesn't have an associated file or directory."); } } } } if (dependencySet.isUseTransitiveFiltering()) { logger.debug("Filtering dependency artifacts USING transitive dependency path information."); } else { logger.debug( "Filtering dependency artifacts WITHOUT transitive dependency path information."); } final ScopeArtifactFilter filter = new ScopeArtifactFilter(dependencySet.getScope()); FilterUtils.filterArtifacts( dependencyArtifacts, dependencySet.getIncludes(), dependencySet.getExcludes(), dependencySet.isUseStrictFiltering(), dependencySet.isUseTransitiveFiltering(), logger, filter); return dependencyArtifacts; }