void printArtifacts()

in src/main/java/org/apache/maven/plugins/artifact/buildinfo/BuildInfoWriter.java [154:236]


    void printArtifacts(MavenProject project) throws MojoExecutionException {
        String prefix = "outputs.";
        if (!mono) {
            // aggregated buildinfo output
            projectCount++;
            prefix += projectCount + ".";
            p.println();
            p.println(prefix + "coordinates=" + project.getGroupId() + ':' + project.getArtifactId());
        }

        // detect Maven 4 consumer POM transient attachment
        Artifact consumerPom = RepositoryUtils.toArtifacts(project.getAttachedArtifacts()).stream()
                .filter(a -> "pom".equals(a.getExtension()) && "consumer".equals(a.getClassifier()))
                .findAny()
                .orElse(null);

        int n = 0;
        Artifact pomArtifact =
                new DefaultArtifact(project.getGroupId(), project.getArtifactId(), null, "pom", project.getVersion());
        if (consumerPom != null) {
            // Maven 4 transient consumer POM attachment is published as the POM, overrides build POM, see
            // https://github.com/apache/maven/blob/c79a7a02721f0f9fd7e202e99f60b593461ba8cc/maven-core/src/main/java/org/apache/maven/internal/transformation/ConsumerPomArtifactTransformer.java#L130-L155
            try {
                Path pomFile = Files.createTempFile(Paths.get(project.getBuild().getDirectory()), "consumer-", ".pom");
                Files.copy(consumerPom.getFile().toPath(), pomFile, StandardCopyOption.REPLACE_EXISTING);
                pomArtifact = pomArtifact.setFile(pomFile.toFile());
            } catch (IOException e) {
                p.println("Error processing consumer POM: " + e);
            }
        } else {
            pomArtifact = pomArtifact.setFile(project.getFile());
        }

        artifacts.put(pomArtifact, prefix + n);
        printFile(
                prefix + n++,
                pomArtifact.getGroupId(),
                pomArtifact.getFile(),
                project.getArtifactId() + '-' + project.getVersion() + ".pom");

        if (consumerPom != null) {
            // build pom
            Artifact buildPomArtifact = new DefaultArtifact(
                    project.getGroupId(), project.getArtifactId(), "build", "pom", project.getVersion());
            buildPomArtifact = buildPomArtifact.setFile(project.getFile());

            artifacts.put(buildPomArtifact, prefix + n);
            printFile(
                    prefix + n++,
                    buildPomArtifact.getGroupId(),
                    buildPomArtifact.getFile(),
                    project.getArtifactId() + '-' + project.getVersion() + "-build.pom");
        }

        if (project.getArtifact() == null) {
            return;
        }

        if (project.getArtifact().getFile() != null) {
            printArtifact(prefix, n++, RepositoryUtils.toArtifact(project.getArtifact()));
        }

        for (Artifact attached : RepositoryUtils.toArtifacts(project.getAttachedArtifacts())) {
            if ("pom".equals(attached.getExtension()) && "consumer".equals(attached.getClassifier())) {
                // ignore consumer pom
                continue;
            }
            if (attached.getExtension().endsWith(".asc")) {
                // ignore pgp signatures
                continue;
            }
            if (ignoreJavadoc && "javadoc".equals(attached.getClassifier())) {
                // TEMPORARY ignore javadoc, waiting for MJAVADOC-627 in m-javadoc-p 3.2.0
                continue;
            }
            if (isIgnore(attached)) {
                p.println("# ignored " + getArtifactFilename(attached));
                artifacts.put(attached, null);
                continue;
            }
            printArtifact(prefix, n++, attached);
        }
    }