code: public static void showSummary(String projectName, Dependency[] dependencies) {
          final StringBuilder summary = new StringBuilder();
          for (Dependency d : dependencies) {
              final String ids = d.getVulnerabilities(true).stream()
                      .map(v -> v.getName())
                      .collect(Collectors.joining(", "));
              if (ids.length() > 0) {
                  summary.append(d.getFileName()).append(" (");
                  summary.append(Stream.concat(d.getSoftwareIdentifiers().stream(), d.getVulnerableSoftwareIdentifiers().stream())
                          .map(i -> i.getValue())
                          .collect(Collectors.joining(", ")));
                  summary.append(") : ").append(ids).append(NEW_LINE);
              }
          }
          if (summary.length() > 0) {
              if (projectName == null || projectName.isEmpty()) {
                  LOGGER.warn("\n\nOne or more dependencies were identified with known vulnerabilities:\n\n{}\n\n"
                          + "See the dependency-check report for more details.\n\n",
                          summary.toString());
              } else {
                  LOGGER.warn("\n\nOne or more dependencies were identified with known vulnerabilities in {}:\n\n{}\n\n"
                          + "See the dependency-check report for more details.\n\n",
                          projectName,
                          summary.toString());
              }
          }
      }
docs: Generates a warning message listing a summary of dependencies and their
  associated CPE and CVE entries.
  
  @param projectName the name of the project
  @param dependencies a list of dependency objects