Loading src/main/java/com/inteligr8/maven/ban/AbstractBanConfiguration.java +51 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ */ package com.inteligr8.maven.ban; import java.io.File; import java.io.IOException; import java.util.LinkedList; import java.util.List; Loading @@ -23,14 +24,21 @@ import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResolutionException; import org.eclipse.aether.resolution.ArtifactResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.inteligr8.maven.model.ArtifactFilter; public class AbstractBanConfiguration implements BanConfiguration { public abstract class AbstractBanConfiguration implements BanConfiguration { private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Pattern artifactPattern = Pattern.compile("^([^:]+):([^:]+)(:([^:]+))?$"); Loading @@ -39,10 +47,51 @@ public class AbstractBanConfiguration implements BanConfiguration { protected final List<ArtifactFilter> includeArtifacts = new LinkedList<>(); protected final List<ArtifactFilter> excludeArtifacts = new LinkedList<>(); private final ArtifactResolver artifactResolver; private final MavenSession session; public AbstractBanConfiguration(MavenSession session, ArtifactResolver artifactResolver) { this.session = session; this.artifactResolver = artifactResolver; } public void init(Xpp3Dom rootDom) throws IOException, MojoFailureException { if (rootDom == null) return; Xpp3Dom importDom = rootDom.getChild("import"); if (importDom != null) this.processImports(importDom); this.processIncludesExcludes(rootDom); } private void processImports(Xpp3Dom importDom) throws IOException, MojoFailureException { for (Xpp3Dom child : importDom.getChildren()) { BanConfigurationDownloader downloader = null; if (child.getName().equals("url")) { String url = StringUtils.trimToNull(importDom.getValue()); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, url); } else if (child.getName().equals("artifact")) { Artifact artifact = new DefaultArtifact(child.getValue()); ArtifactRequest request = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult result = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), request); File file = result.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, file); } catch (ArtifactResolutionException are) { this.logger.warn("The artifact could not be resolved; skipping: {}", child.getValue()); } } if (downloader != null) { this.includeArtifacts.addAll(downloader.getIncludeArtifacts()); this.excludeArtifacts.addAll(downloader.getExcludeArtifacts()); } } } private void processIncludesExcludes(Xpp3Dom rootDom) { Xpp3Dom includesDom = rootDom.getChild("includes"); if (includesDom != null) this.includeArtifacts.addAll(this.parseArtifacts(includesDom)); Loading src/main/java/com/inteligr8/maven/ban/BanConfigurationDownloader.java +2 −46 Original line number Diff line number Diff line Loading @@ -21,18 +21,12 @@ import java.io.IOException; import java.io.InputStream; import java.net.URL; import org.apache.commons.lang3.StringUtils; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResolutionException; import org.eclipse.aether.resolution.ArtifactResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -40,16 +34,8 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final ArtifactResolver artifactResolver; private final MavenSession session; public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver) { this.session = session; this.artifactResolver = artifactResolver; } public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, String url) throws IOException, MojoFailureException { this(session, artifactResolver); super(session, artifactResolver); try { Xpp3Dom rootDom = this.load(new URL(url)); Loading @@ -60,7 +46,7 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { } public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, File file) throws IOException, MojoFailureException { this(session, artifactResolver); super(session, artifactResolver); try { Xpp3Dom rootDom = this.load(file); Loading @@ -70,36 +56,6 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { } } @Override public void init(Xpp3Dom rootDom) throws IOException, MojoFailureException { Xpp3Dom importDom = rootDom.getChild("import"); if (importDom != null) { for (Xpp3Dom child : importDom.getChildren()) { BanConfigurationDownloader downloader = null; if (child.getName().equals("url")) { String url = StringUtils.trimToNull(importDom.getValue()); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, url); } else if (child.getName().equals("artifact")) { Artifact artifact = new DefaultArtifact(child.getValue()); ArtifactRequest request = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult result = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), request); File file = result.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, file); } catch (ArtifactResolutionException are) { this.logger.warn("The artifact could not be resolved; skipping: {}", child.getValue()); } } if (downloader != null) { this.includeArtifacts.addAll(downloader.getIncludeArtifacts()); this.excludeArtifacts.addAll(downloader.getExcludeArtifacts()); } } } } private Xpp3Dom load(URL url) throws IOException, XmlPullParserException { InputStream istream = url.openStream(); BufferedInputStream bistream = new BufferedInputStream(istream, 16384); Loading src/main/java/com/inteligr8/maven/ban/BanConfigurationParser.java +5 −1 Original line number Diff line number Diff line Loading @@ -16,13 +16,17 @@ package com.inteligr8.maven.ban; import java.io.IOException; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.impl.ArtifactResolver; public class BanConfigurationParser extends AbstractBanConfiguration { public BanConfigurationParser(Plugin plugin) throws IOException, MojoFailureException { public BanConfigurationParser(MavenSession session, ArtifactResolver artifactResolver, Plugin plugin) throws IOException, MojoFailureException { super(session, artifactResolver); Xpp3Dom rootDom = (Xpp3Dom) plugin.getConfiguration(); this.init(rootDom); } Loading src/main/java/com/inteligr8/maven/ban/BanExtension.java +10 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.DependencyFilter; import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.impl.ArtifactResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -52,6 +53,9 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Inject private ArtifactResolver artifactResolver; @Inject private ProjectDependenciesResolver projDepResolver; Loading @@ -60,14 +64,15 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { @Override public void afterProjectsRead(MavenSession session) throws MavenExecutionException { MavenProject project = session.getCurrentProject(); BanConfiguration config = this.getConfiguration(project); BanConfiguration config = this.getConfiguration(session); if (config == null) return; BanDependencyFilter depFilter = new BanDependencyFilter(config.getIncludeArtifacts(), config.getExcludeArtifacts()); depFilter.setFailFast(true); MavenProject project = session.getCurrentProject(); try { for (Plugin plugin : project.getBuildPlugins()) { this.logger.debug("Evaluating plugin dependencies: {}", plugin); Loading Loading @@ -97,7 +102,8 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { } } private BanConfigurationParser getConfiguration(MavenProject project) throws MavenExecutionException { private BanConfiguration getConfiguration(MavenSession session) throws MavenExecutionException { MavenProject project = session.getCurrentProject(); Plugin plugin = project.getPlugin(THIS_PLUGIN_KEY); if (plugin == null) throw new MavenExecutionException("The plugin is executing but it cannot be found", project.getFile()); Loading @@ -107,7 +113,7 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { return null; } else { try { return new BanConfigurationParser(plugin); return new BanConfigurationParser(session, this.artifactResolver, plugin); } catch (IOException | MojoFailureException e) { throw new MavenExecutionException(e.getMessage(), project.getFile()); } Loading src/main/java/com/inteligr8/maven/ban/PurgeRepoMojo.java +23 −5 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.component.annotations.Component; import org.eclipse.aether.impl.ArtifactResolver; import com.inteligr8.maven.model.ArtifactFilter; Loading @@ -54,6 +55,9 @@ public class PurgeRepoMojo extends AbstractMojo { @Inject private MavenSession session; @Inject private ArtifactResolver artifactResolver; @Parameter(name = "skip", defaultValue = "false") private boolean skip = false; Loading @@ -78,7 +82,7 @@ public class PurgeRepoMojo extends AbstractMojo { private void purge() throws MojoFailureException, IOException { List<Path> includePaths = new LinkedList<>(); BanConfigurationParser config = this.getConfiguration(this.session.getCurrentProject()); BanConfigurationParser config = this.getConfiguration(); for (ArtifactFilter afilter : config.getIncludeArtifacts()) { if (afilter.getGroupId() == null) { Loading Loading @@ -159,11 +163,12 @@ public class PurgeRepoMojo extends AbstractMojo { } } private BanConfigurationParser getConfiguration(MavenProject project) throws MojoFailureException, IOException { private BanConfigurationParser getConfiguration() throws MojoFailureException, IOException { MavenProject project = this.session.getCurrentProject(); Plugin plugin = project.getPlugin(BanExtension.THIS_PLUGIN_KEY); if (plugin == null) throw new MojoFailureException("The plugin is executing but it cannot be found"); return new BanConfigurationParser(plugin); return new BanConfigurationParser(this.session, this.artifactResolver, plugin); } private Path getGroupPath(ArtifactFilter afilter) { Loading Loading @@ -243,7 +248,14 @@ public class PurgeRepoMojo extends AbstractMojo { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { try { if (!attrs.isDirectory()) Files.delete(file); } catch (IOException ie) { getLog().debug(ie); getLog().warn("The file failed to delete: " + file); } return FileVisitResult.CONTINUE; } Loading @@ -254,7 +266,13 @@ public class PurgeRepoMojo extends AbstractMojo { @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { try { Files.delete(dir); } catch (IOException ie) { getLog().debug(ie); getLog().warn("The folder failed to delete: " + dir); } return FileVisitResult.CONTINUE; } Loading Loading
src/main/java/com/inteligr8/maven/ban/AbstractBanConfiguration.java +51 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ */ package com.inteligr8.maven.ban; import java.io.File; import java.io.IOException; import java.util.LinkedList; import java.util.List; Loading @@ -23,14 +24,21 @@ import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResolutionException; import org.eclipse.aether.resolution.ArtifactResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.inteligr8.maven.model.ArtifactFilter; public class AbstractBanConfiguration implements BanConfiguration { public abstract class AbstractBanConfiguration implements BanConfiguration { private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Pattern artifactPattern = Pattern.compile("^([^:]+):([^:]+)(:([^:]+))?$"); Loading @@ -39,10 +47,51 @@ public class AbstractBanConfiguration implements BanConfiguration { protected final List<ArtifactFilter> includeArtifacts = new LinkedList<>(); protected final List<ArtifactFilter> excludeArtifacts = new LinkedList<>(); private final ArtifactResolver artifactResolver; private final MavenSession session; public AbstractBanConfiguration(MavenSession session, ArtifactResolver artifactResolver) { this.session = session; this.artifactResolver = artifactResolver; } public void init(Xpp3Dom rootDom) throws IOException, MojoFailureException { if (rootDom == null) return; Xpp3Dom importDom = rootDom.getChild("import"); if (importDom != null) this.processImports(importDom); this.processIncludesExcludes(rootDom); } private void processImports(Xpp3Dom importDom) throws IOException, MojoFailureException { for (Xpp3Dom child : importDom.getChildren()) { BanConfigurationDownloader downloader = null; if (child.getName().equals("url")) { String url = StringUtils.trimToNull(importDom.getValue()); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, url); } else if (child.getName().equals("artifact")) { Artifact artifact = new DefaultArtifact(child.getValue()); ArtifactRequest request = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult result = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), request); File file = result.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, file); } catch (ArtifactResolutionException are) { this.logger.warn("The artifact could not be resolved; skipping: {}", child.getValue()); } } if (downloader != null) { this.includeArtifacts.addAll(downloader.getIncludeArtifacts()); this.excludeArtifacts.addAll(downloader.getExcludeArtifacts()); } } } private void processIncludesExcludes(Xpp3Dom rootDom) { Xpp3Dom includesDom = rootDom.getChild("includes"); if (includesDom != null) this.includeArtifacts.addAll(this.parseArtifacts(includesDom)); Loading
src/main/java/com/inteligr8/maven/ban/BanConfigurationDownloader.java +2 −46 Original line number Diff line number Diff line Loading @@ -21,18 +21,12 @@ import java.io.IOException; import java.io.InputStream; import java.net.URL; import org.apache.commons.lang3.StringUtils; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResolutionException; import org.eclipse.aether.resolution.ArtifactResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -40,16 +34,8 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final ArtifactResolver artifactResolver; private final MavenSession session; public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver) { this.session = session; this.artifactResolver = artifactResolver; } public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, String url) throws IOException, MojoFailureException { this(session, artifactResolver); super(session, artifactResolver); try { Xpp3Dom rootDom = this.load(new URL(url)); Loading @@ -60,7 +46,7 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { } public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, File file) throws IOException, MojoFailureException { this(session, artifactResolver); super(session, artifactResolver); try { Xpp3Dom rootDom = this.load(file); Loading @@ -70,36 +56,6 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { } } @Override public void init(Xpp3Dom rootDom) throws IOException, MojoFailureException { Xpp3Dom importDom = rootDom.getChild("import"); if (importDom != null) { for (Xpp3Dom child : importDom.getChildren()) { BanConfigurationDownloader downloader = null; if (child.getName().equals("url")) { String url = StringUtils.trimToNull(importDom.getValue()); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, url); } else if (child.getName().equals("artifact")) { Artifact artifact = new DefaultArtifact(child.getValue()); ArtifactRequest request = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult result = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), request); File file = result.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, file); } catch (ArtifactResolutionException are) { this.logger.warn("The artifact could not be resolved; skipping: {}", child.getValue()); } } if (downloader != null) { this.includeArtifacts.addAll(downloader.getIncludeArtifacts()); this.excludeArtifacts.addAll(downloader.getExcludeArtifacts()); } } } } private Xpp3Dom load(URL url) throws IOException, XmlPullParserException { InputStream istream = url.openStream(); BufferedInputStream bistream = new BufferedInputStream(istream, 16384); Loading
src/main/java/com/inteligr8/maven/ban/BanConfigurationParser.java +5 −1 Original line number Diff line number Diff line Loading @@ -16,13 +16,17 @@ package com.inteligr8.maven.ban; import java.io.IOException; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.impl.ArtifactResolver; public class BanConfigurationParser extends AbstractBanConfiguration { public BanConfigurationParser(Plugin plugin) throws IOException, MojoFailureException { public BanConfigurationParser(MavenSession session, ArtifactResolver artifactResolver, Plugin plugin) throws IOException, MojoFailureException { super(session, artifactResolver); Xpp3Dom rootDom = (Xpp3Dom) plugin.getConfiguration(); this.init(rootDom); } Loading
src/main/java/com/inteligr8/maven/ban/BanExtension.java +10 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.DependencyFilter; import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.impl.ArtifactResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -52,6 +53,9 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Inject private ArtifactResolver artifactResolver; @Inject private ProjectDependenciesResolver projDepResolver; Loading @@ -60,14 +64,15 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { @Override public void afterProjectsRead(MavenSession session) throws MavenExecutionException { MavenProject project = session.getCurrentProject(); BanConfiguration config = this.getConfiguration(project); BanConfiguration config = this.getConfiguration(session); if (config == null) return; BanDependencyFilter depFilter = new BanDependencyFilter(config.getIncludeArtifacts(), config.getExcludeArtifacts()); depFilter.setFailFast(true); MavenProject project = session.getCurrentProject(); try { for (Plugin plugin : project.getBuildPlugins()) { this.logger.debug("Evaluating plugin dependencies: {}", plugin); Loading Loading @@ -97,7 +102,8 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { } } private BanConfigurationParser getConfiguration(MavenProject project) throws MavenExecutionException { private BanConfiguration getConfiguration(MavenSession session) throws MavenExecutionException { MavenProject project = session.getCurrentProject(); Plugin plugin = project.getPlugin(THIS_PLUGIN_KEY); if (plugin == null) throw new MavenExecutionException("The plugin is executing but it cannot be found", project.getFile()); Loading @@ -107,7 +113,7 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { return null; } else { try { return new BanConfigurationParser(plugin); return new BanConfigurationParser(session, this.artifactResolver, plugin); } catch (IOException | MojoFailureException e) { throw new MavenExecutionException(e.getMessage(), project.getFile()); } Loading
src/main/java/com/inteligr8/maven/ban/PurgeRepoMojo.java +23 −5 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.component.annotations.Component; import org.eclipse.aether.impl.ArtifactResolver; import com.inteligr8.maven.model.ArtifactFilter; Loading @@ -54,6 +55,9 @@ public class PurgeRepoMojo extends AbstractMojo { @Inject private MavenSession session; @Inject private ArtifactResolver artifactResolver; @Parameter(name = "skip", defaultValue = "false") private boolean skip = false; Loading @@ -78,7 +82,7 @@ public class PurgeRepoMojo extends AbstractMojo { private void purge() throws MojoFailureException, IOException { List<Path> includePaths = new LinkedList<>(); BanConfigurationParser config = this.getConfiguration(this.session.getCurrentProject()); BanConfigurationParser config = this.getConfiguration(); for (ArtifactFilter afilter : config.getIncludeArtifacts()) { if (afilter.getGroupId() == null) { Loading Loading @@ -159,11 +163,12 @@ public class PurgeRepoMojo extends AbstractMojo { } } private BanConfigurationParser getConfiguration(MavenProject project) throws MojoFailureException, IOException { private BanConfigurationParser getConfiguration() throws MojoFailureException, IOException { MavenProject project = this.session.getCurrentProject(); Plugin plugin = project.getPlugin(BanExtension.THIS_PLUGIN_KEY); if (plugin == null) throw new MojoFailureException("The plugin is executing but it cannot be found"); return new BanConfigurationParser(plugin); return new BanConfigurationParser(this.session, this.artifactResolver, plugin); } private Path getGroupPath(ArtifactFilter afilter) { Loading Loading @@ -243,7 +248,14 @@ public class PurgeRepoMojo extends AbstractMojo { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { try { if (!attrs.isDirectory()) Files.delete(file); } catch (IOException ie) { getLog().debug(ie); getLog().warn("The file failed to delete: " + file); } return FileVisitResult.CONTINUE; } Loading @@ -254,7 +266,13 @@ public class PurgeRepoMojo extends AbstractMojo { @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { try { Files.delete(dir); } catch (IOException ie) { getLog().debug(ie); getLog().warn("The folder failed to delete: " + dir); } return FileVisitResult.CONTINUE; } Loading