diff --git a/src/main/java/com/inteligr8/maven/ban/BanDependencyFilter.java b/src/main/java/com/inteligr8/maven/ban/BanDependencyFilter.java index a39c3e4..8fdc7fd 100644 --- a/src/main/java/com/inteligr8/maven/ban/BanDependencyFilter.java +++ b/src/main/java/com/inteligr8/maven/ban/BanDependencyFilter.java @@ -90,6 +90,7 @@ public class BanDependencyFilter implements DependencyFilter { // plugin resolution downloads banned dependencies unless we fail now; not later throw new BannedDependencyException(node, parents); } else { + this.logger.warn("Banned dependency: " + depArtifact + " => " + parents); return true; } } diff --git a/src/main/java/com/inteligr8/maven/ban/BanExtension.java b/src/main/java/com/inteligr8/maven/ban/BanExtension.java index 8b30524..f7d1128 100644 --- a/src/main/java/com/inteligr8/maven/ban/BanExtension.java +++ b/src/main/java/com/inteligr8/maven/ban/BanExtension.java @@ -90,7 +90,8 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { BanDependencyFilter depFilter = new BanDependencyFilter( config.getIncludeArtifacts(), config.getExcludeArtifacts()); - depFilter.setFailFast(true); + //depFilter.setFailFast(true); + boolean fail = false; MavenProject project = session.getCurrentProject(); @@ -99,14 +100,11 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { this.logger.debug("Evaluating plugin dependencies: {}", plugin); Artifact artifact = new DefaultArtifact(plugin.getId()); - try { - DependencyNode depNodeRoot = this.pluginDepResolver.resolve(plugin, artifact, depFilter, project.getRemotePluginRepositories(), session.getRepositorySession()); - List bannedDependencies = this.crawlDependencyTree(depNodeRoot, depFilter); - if (!bannedDependencies.isEmpty()) - throw new MavenExecutionException("Banned dependencies were detected in plugin '" + plugin + "': " + bannedDependencies, project.getFile()); - } catch (BannedDependencyException bde) { - throw new BannedPluginException(plugin, bde); - } + DependencyNode depNodeRoot = this.pluginDepResolver.resolve(plugin, artifact, depFilter, project.getRemotePluginRepositories(), session.getRepositorySession()); + List bannedDependencies = this.crawlDependencyTree(depNodeRoot, depFilter); + if (!bannedDependencies.isEmpty()) + fail = true; + //throw new MavenExecutionException("Banned dependencies were detected in plugin '" + plugin.getKey() + "': " + bannedDependencies, project.getFile()); } } catch (BannedArtifactException bae) { throw new MavenExecutionException(bae.getMessage(), bae); @@ -114,19 +112,24 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { throw new MavenExecutionException(pre.getMessage(), pre); } - depFilter.setFailFast(false); + //depFilter.setFailFast(false); DefaultDependencyResolutionRequest request = new DefaultDependencyResolutionRequest(project, session.getRepositorySession()); request.setResolutionFilter(depFilter); try { + // TODO somehow get the chain DependencyResolutionResult result = this.projDepResolver.resolve(request); List bannedDependencies = result.getDependencies(); if (!bannedDependencies.isEmpty()) - throw new MavenExecutionException("Banned dependencies were detected: " + bannedDependencies, project.getFile()); + fail = true; + //throw new MavenExecutionException("Banned dependencies were detected: " + bannedDependencies, project.getFile()); } catch (DependencyResolutionException dre) { throw new MavenExecutionException(dre.getMessage(), dre); } + + if (fail) + throw new MavenExecutionException("Banned dependencies were detected; see warnings: ", project.getFile()); } private BanConfiguration getConfiguration(MavenSession session) throws MavenExecutionException { diff --git a/src/main/java/com/inteligr8/maven/ban/BannedArtifactException.java b/src/main/java/com/inteligr8/maven/ban/BannedArtifactException.java index 15b1af4..ae3cf44 100644 --- a/src/main/java/com/inteligr8/maven/ban/BannedArtifactException.java +++ b/src/main/java/com/inteligr8/maven/ban/BannedArtifactException.java @@ -25,7 +25,7 @@ public class BannedArtifactException extends RuntimeException { private static String buildMessage(Artifact descendant, Iterable ancestors) { StringBuilder sb = new StringBuilder(); - sb.append("Banned artifact: ").append(descendant); + sb.append(descendant); if (ancestors != null) { for (Artifact ancestor : ancestors) { sb.append(" from ");