diff --git a/src/main/java/org/cyclonedx/maven/CycloneDxAggregateMojo.java b/src/main/java/org/cyclonedx/maven/CycloneDxAggregateMojo.java index 416596ad..8573c33c 100644 --- a/src/main/java/org/cyclonedx/maven/CycloneDxAggregateMojo.java +++ b/src/main/java/org/cyclonedx/maven/CycloneDxAggregateMojo.java @@ -27,6 +27,7 @@ import org.cyclonedx.model.Component; import org.cyclonedx.model.Dependency; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -117,9 +118,10 @@ protected String extractComponentsAndDependencies(final Set topLevelComp // root project: analyze and aggregate all the modules getLog().info((reactorProjects.size() <= 1) ? MESSAGE_RESOLVING_DEPS : MESSAGE_RESOLVING_AGGREGATED_DEPS); + final List excludedProjects = new ArrayList<>(); for (final MavenProject mavenProject : reactorProjects) { if (shouldExclude(mavenProject)) { - getLog().info("Excluding " + mavenProject.getArtifactId()); + excludedProjects.add(mavenProject.getArtifactId()); continue; } @@ -135,6 +137,8 @@ protected String extractComponentsAndDependencies(final Set topLevelComp projectDependencies.forEach(dependencies::putIfAbsent); } + excludedProjects.stream().sorted(String.CASE_INSENSITIVE_ORDER).forEach(excluded -> getLog().info("Excluding " + excluded)); + addMavenProjectsAsParentDependencies(reactorProjects, dependencies); return "makeAggregateBom"; diff --git a/src/main/java/org/cyclonedx/maven/DefaultProjectDependenciesConverter.java b/src/main/java/org/cyclonedx/maven/DefaultProjectDependenciesConverter.java index 3b00edaf..b8a286d5 100644 --- a/src/main/java/org/cyclonedx/maven/DefaultProjectDependenciesConverter.java +++ b/src/main/java/org/cyclonedx/maven/DefaultProjectDependenciesConverter.java @@ -40,10 +40,12 @@ import org.slf4j.LoggerFactory; import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.Set; @@ -242,6 +244,7 @@ public void cleanupBomDependencies(Metadata metadata, Map com // Check all BOM components have an associated BOM dependency + final List notDepended = new ArrayList<>(); for (Iterator> it = components.entrySet().iterator(); it.hasNext(); ) { Map.Entry entry = it.next(); if (!dependencies.containsKey(entry.getKey())) { @@ -250,10 +253,12 @@ public void cleanupBomDependencies(Metadata metadata, Map com } it.remove(); } else if (!dependsOns.contains(entry.getKey())) { - logger.warn("BOM dependency listed but is not depended upon: " + entry.getKey()); + notDepended.add(entry.getKey()); } } + notDepended.stream().sorted(String.CASE_INSENSITIVE_ORDER).forEach(dependency -> logger.warn("BOM dependency listed but is not depended upon: " + dependency)); + // include BOM main component Component main = metadata.getComponent(); final String mainBomRef = main.getBomRef();