Commit 2a152301 authored by Brian Long's avatar Brian Long
Browse files

prevent sub-group matching for purge

parent 47fd0724
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -219,14 +219,27 @@ public class PurgeRepoMojo extends AbstractMojo {
        
        Files.list(repoPath.resolve(groupPath)).forEach(new Consumer<Path>() {
            @Override
            public void accept(Path t) {
            public void accept(Path fullArtifactPath) {
                if (artifactPattern == null) {
                    paths.add(repoPath.relativize(t));
                    // these may include sub-groups and not just artifacts
                    // which will lead to paths with artifacts as versions
                    // so we are looping through versions to see if it is indeed an artifact
                    try {
                        Files.list(fullArtifactPath).findFirst().ifPresent(new Consumer<Path>() {
                            @Override
                            public void accept(Path fullVersionPath) {
                                if (Files.exists(fullVersionPath.resolve("_remote.repositories")))
                                    paths.add(repoPath.relativize(fullArtifactPath));
                            }
                        });
                    } catch (IOException ie) {
                        getLog().error(ie.getMessage(), ie);
                    }
                } else {
                    Matcher matcher = artifactPattern.matcher(t.getFileName().toString());
                    Matcher matcher = artifactPattern.matcher(fullArtifactPath.getFileName().toString());
                    if (matcher.matches()) {
                        getLog().debug("The artifact directory '" + t.getFileName() + "' qualifies as included");
                        paths.add(repoPath.relativize(t));
                        getLog().debug("The artifact directory '" + fullArtifactPath.getFileName() + "' qualifies as included");
                        paths.add(repoPath.relativize(fullArtifactPath));
                    }
                }
            }