public void execute()

in src/main/java/org/apache/maven/ant/tasks/DependencyFilesetsTask.java [53:88]


    public void execute() {
        if (this.getProject().getReference(mavenProjectId) == null) {
            throw new BuildException("Maven project reference not found: " + mavenProjectId);
        }

        MavenProject mavenProject = this.getProject().getReference("maven.project");

        // Add filesets for depenedency artifacts
        Set<Artifact> depArtifacts = filterArtifacts(mavenProject.getArtifacts());

        FileSet dependenciesFileSet = new FileSet();
        dependenciesFileSet.setProject(getProject());
        ArtifactRepository localRepository = getProject().getReference("maven.local.repository");
        dependenciesFileSet.setDir(new File(localRepository.getBasedir()));

        if (depArtifacts.isEmpty()) {
            // For performance reasons in case of huge local repo, tell Ant to include a single thing, otherwise the
            // whole directory is scanned (even though ** is excluded).
            dependenciesFileSet.createInclude().setName(".");
            dependenciesFileSet.createExclude().setName("**");
        }

        for (Artifact artifact : depArtifacts) {
            String relativeArtifactPath = localRepository.pathOf(artifact);
            dependenciesFileSet.createInclude().setName(relativeArtifactPath);

            String fileSetName = getPrefix() + artifact.getDependencyConflictId();

            FileSet singleArtifactFileSet = new FileSet();
            singleArtifactFileSet.setProject(getProject());
            singleArtifactFileSet.setFile(artifact.getFile());
            getProject().addReference(fileSetName, singleArtifactFileSet);
        }

        getProject().addReference((getPrefix() + getProjectDependenciesId()), dependenciesFileSet);
    }