10 Commits

5 changed files with 44 additions and 2 deletions

View File

@@ -7,7 +7,7 @@
<groupId>com.inteligr8</groupId> <groupId>com.inteligr8</groupId>
<artifactId>ban-maven-plugin</artifactId> <artifactId>ban-maven-plugin</artifactId>
<version>1.3.3</version> <version>1.3.6</version>
<packaging>maven-plugin</packaging> <packaging>maven-plugin</packaging>
<name>Ban Dependencies Maven Plugin</name> <name>Ban Dependencies Maven Plugin</name>

View File

@@ -29,6 +29,7 @@ import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.PluginResolutionException; import org.apache.maven.plugin.PluginResolutionException;
import org.apache.maven.plugin.internal.PluginDependenciesResolver; import org.apache.maven.plugin.internal.PluginDependenciesResolver;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.DefaultDependencyResolutionRequest; import org.apache.maven.project.DefaultDependencyResolutionRequest;
import org.apache.maven.project.DependencyResolutionException; import org.apache.maven.project.DependencyResolutionException;
import org.apache.maven.project.DependencyResolutionResult; import org.apache.maven.project.DependencyResolutionResult;
@@ -44,6 +45,8 @@ import org.eclipse.aether.impl.VersionRangeResolver;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.inteligr8.maven.ban.model.ImportConfig;
@Named("ban") @Named("ban")
@Singleton @Singleton
public class BanExtension extends AbstractMavenLifecycleParticipant { public class BanExtension extends AbstractMavenLifecycleParticipant {
@@ -65,6 +68,18 @@ public class BanExtension extends AbstractMavenLifecycleParticipant {
@Inject @Inject
private PluginDependenciesResolver pluginDepResolver; private PluginDependenciesResolver pluginDepResolver;
/**
* The configuration is parsed manually. This is here to prevent warning messages with IDEs and builders.
*/
@Parameter(name = "import")
private ImportConfig importConfig;
@Parameter(name = "includes")
private List<String> includes;
@Parameter(name = "excludes")
private List<String> excludes;
@Override @Override
public void afterProjectsRead(MavenSession session) throws MavenExecutionException { public void afterProjectsRead(MavenSession session) throws MavenExecutionException {

View File

@@ -16,6 +16,7 @@ package com.inteligr8.maven.ban;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.DirectoryNotEmptyException;
import java.nio.file.FileVisitResult; import java.nio.file.FileVisitResult;
import java.nio.file.FileVisitor; import java.nio.file.FileVisitor;
import java.nio.file.Files; import java.nio.file.Files;
@@ -281,7 +282,7 @@ public class PurgeRepoMojo extends AbstractMojo {
private class DeleteNonMetadataVisitor implements FileVisitor<Path> { private class DeleteNonMetadataVisitor implements FileVisitor<Path> {
private final Pattern versionPathPattern = Pattern.compile("/([^/]+)/([^/]+)$"); private final Pattern versionPathPattern = Pattern.compile("/([^/]+)/([^/]+)/[^/]+$");
@Override @Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
@@ -305,9 +306,12 @@ public class PurgeRepoMojo extends AbstractMojo {
String version = matcher.group(2); String version = matcher.group(2);
String includeName = artifactId + "-" + version; String includeName = artifactId + "-" + version;
String excludeName = artifactId + "-" + version + ".pom"; String excludeName = artifactId + "-" + version + ".pom";
getLog().debug("artifact-version: " + includeName);
if (file.getFileName().toString().startsWith(includeName) && if (file.getFileName().toString().startsWith(includeName) &&
!file.getFileName().toString().startsWith(excludeName)) { !file.getFileName().toString().startsWith(excludeName)) {
try { try {
getLog().info("Deleting artifact: " + file);
Files.delete(file); Files.delete(file);
} catch (IOException ie) { } catch (IOException ie) {
getLog().debug(ie); getLog().debug(ie);
@@ -328,6 +332,8 @@ public class PurgeRepoMojo extends AbstractMojo {
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
try { try {
Files.delete(dir); Files.delete(dir);
} catch (DirectoryNotEmptyException dnee) {
getLog().debug("The folder will not be deleted as it is not empty: " + dir);
} catch (IOException ie) { } catch (IOException ie) {
getLog().debug(ie); getLog().debug(ie);
getLog().warn("The folder failed to delete: " + dir); getLog().warn("The folder failed to delete: " + dir);

View File

@@ -0,0 +1,11 @@
package com.inteligr8.maven.ban.model;
import java.util.List;
public class Config {
public ImportConfig importConfigs;
public List<String> includes;
public List<String> excludes;
}

View File

@@ -0,0 +1,10 @@
package com.inteligr8.maven.ban.model;
import java.util.List;
public class ImportConfig {
public List<String> url;
public List<String> artifact;
}