You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2024/10/27 16:18:03 UTC
(maven-artifact-plugin) 01/03: [MARTIFACT-74] describe groupId(s) and duplicate artifactId(s)
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-artifact-plugin.git
commit 094434e03c2cd7564a5110e5f4f9749921abd28d
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Wed Oct 16 01:45:39 2024 +0200
[MARTIFACT-74] describe groupId(s) and duplicate artifactId(s)
---
.../buildinfo/DescribeBuildOutputMojo.java | 28 ++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/DescribeBuildOutputMojo.java b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/DescribeBuildOutputMojo.java
index 21e6529..3fadd63 100644
--- a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/DescribeBuildOutputMojo.java
+++ b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/DescribeBuildOutputMojo.java
@@ -25,7 +25,10 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
+import java.util.Comparator;
import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.maven.RepositoryUtils;
@@ -58,8 +61,25 @@ public class DescribeBuildOutputMojo extends AbstractBuildinfoMojo {
rootPath = getExecutionRoot().getBasedir().toPath();
bi = newBuildInfoWriter(null, false);
+ Map<String, Long> groupIds = session.getProjects().stream()
+ .collect(Collectors.groupingBy(MavenProject::getGroupId, Collectors.counting()));
+ groupIds.entrySet().stream()
+ .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
+ .forEach(e -> getLog().info("groupId: " + e.getKey() + " (" + e.getValue() + " artifactId"
+ + ((e.getValue() > 1) ? "s" : "") + ")"));
+
+ Map<String, Set<String>> artifactIds = session.getProjects().stream()
+ .collect(Collectors.groupingBy(
+ MavenProject::getArtifactId, Collectors.mapping(MavenProject::getGroupId, Collectors.toSet())));
+ artifactIds.entrySet().stream()
+ .sorted(Map.Entry.comparingByKey())
+ .filter(e -> e.getValue().size() > 1)
+ .forEach(e ->
+ getLog().info("artifactId: " + e.getKey() + " defined for multiple groupIds: " + e.getValue()));
+
+ getLog().info("");
getLog().info(MessageUtils.buffer()
- .a("skip/ignore artifactId")
+ .a("skip/ignore? artifactId")
.strong("[:classifier][:extension]")
.a(" = build-path repository-filename size [sha256]")
.build());
@@ -92,11 +112,11 @@ public class DescribeBuildOutputMojo extends AbstractBuildinfoMojo {
}
}
pomArtifact = pomArtifact.setFile(p.getFile());
- getLog().info(s + describeArtifact(pomArtifact));
+ getLog().info(s + describeArtifact(pomArtifact, skipped));
// main artifact (when available: pom packaging does not provide main artifact)
if (p.getArtifact().getFile() != null) {
- getLog().info(s + describeArtifact(RepositoryUtils.toArtifact(p.getArtifact())));
+ getLog().info(s + describeArtifact(RepositoryUtils.toArtifact(p.getArtifact()), skipped));
}
// attached artifacts (when available)
@@ -107,7 +127,7 @@ public class DescribeBuildOutputMojo extends AbstractBuildinfoMojo {
}
boolean ignored = skipped ? false : isIgnore(a);
String i = skipped ? s : (ignored ? "RB-ignored " : " ");
- getLog().info(i + describeArtifact(a, ignored));
+ getLog().info(i + describeArtifact(a, skipped || ignored));
}
}
}