You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/10/20 09:53:14 UTC
(maven-dependency-plugin) 02/02: [MDEP-496] Keep default-excluded entries for includes-only unpacks
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git
commit 365dd0b2bffeda3139b2c3eb51404e89b365803c
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Tue Oct 13 23:59:14 2026 +0200
[MDEP-496] Keep default-excluded entries for includes-only unpacks
setUseDefaultExcludes() recomputes the exclude patterns, so calling it for a selector without excludes dropped .svn and .git entries that were extracted before. Call it only when excludes are set.
---
.../org/apache/maven/plugins/dependency/utils/UnpackUtil.java | 7 ++++---
.../dependency/fromConfiguration/TestUnpackDefaultExcludes.java | 9 +++++++++
.../fromDependencies/TestUnpackDependenciesDefaultExcludes.java | 9 +++++++++
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/dependency/utils/UnpackUtil.java b/src/main/java/org/apache/maven/plugins/dependency/utils/UnpackUtil.java
index ed9152ee..47253334 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/utils/UnpackUtil.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/utils/UnpackUtil.java
@@ -165,10 +165,11 @@ public class UnpackUtil {
IncludeExcludeFileSelector[] selectors =
new IncludeExcludeFileSelector[] {new IncludeExcludeFileSelector()};
- // must precede setExcludes(), which computes the effective exclude patterns
- selectors[0].setUseDefaultExcludes(useDefaultExcludes);
-
if (excludes != null && !excludes.isEmpty()) {
+ // Only here: setUseDefaultExcludes() recomputes the exclude patterns, so calling it for an
+ // includes-only selector would start dropping .svn, .git and so on, which were extracted so far.
+ // It also has to precede setExcludes().
+ selectors[0].setUseDefaultExcludes(useDefaultExcludes);
selectors[0].setExcludes(excludes.split(","));
}
diff --git a/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestUnpackDefaultExcludes.java b/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestUnpackDefaultExcludes.java
index c47c1eea..027c3d1f 100644
--- a/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestUnpackDefaultExcludes.java
+++ b/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestUnpackDefaultExcludes.java
@@ -93,4 +93,13 @@ class TestUnpackDefaultExcludes {
assertFalse(new File(mojo.getOutputDirectory(), "dropped.log").exists());
assertTrue(new File(mojo.getOutputDirectory(), ".svn/entries").exists());
}
+
+ @Test
+ @InjectMojo(goal = "unpack")
+ void testIncludesOnlyKeepsDefaultExcludedEntries(UnpackMojo mojo) throws Exception {
+ mojo.setIncludes("**/*");
+ mojo.execute();
+ assertTrue(new File(mojo.getOutputDirectory(), "kept.txt").exists());
+ assertTrue(new File(mojo.getOutputDirectory(), ".svn/entries").exists());
+ }
}
diff --git a/src/test/java/org/apache/maven/plugins/dependency/fromDependencies/TestUnpackDependenciesDefaultExcludes.java b/src/test/java/org/apache/maven/plugins/dependency/fromDependencies/TestUnpackDependenciesDefaultExcludes.java
index 5e1a931f..f7a657c4 100644
--- a/src/test/java/org/apache/maven/plugins/dependency/fromDependencies/TestUnpackDependenciesDefaultExcludes.java
+++ b/src/test/java/org/apache/maven/plugins/dependency/fromDependencies/TestUnpackDependenciesDefaultExcludes.java
@@ -88,4 +88,13 @@ class TestUnpackDependenciesDefaultExcludes {
assertFalse(new File(mojo.getOutputDirectory(), "dropped.log").exists());
assertTrue(new File(mojo.getOutputDirectory(), ".svn/entries").exists());
}
+
+ @Test
+ @InjectMojo(goal = "unpack-dependencies")
+ void testIncludesOnlyKeepsDefaultExcludedEntries(UnpackDependenciesMojo mojo) throws Exception {
+ mojo.setIncludes("**/*");
+ mojo.execute();
+ assertTrue(new File(mojo.getOutputDirectory(), "kept.txt").exists());
+ assertTrue(new File(mojo.getOutputDirectory(), ".svn/entries").exists());
+ }
}