[MGPG-66] fix handling of excluded files on linux · apache/maven-gpg-plugin@4da6921 (original) (raw)

File tree

Original file line number Diff line number Diff line change
@@ -21,6 +21,7 @@
21 21
22 22 import java.io.File;
23 23 import java.io.IOException;
24 +import java.nio.file.Path;
24 25 import java.util.ArrayList;
25 26 import java.util.List;
26 27
@@ -192,7 +193,7 @@ else if ( project.getAttachedArtifacts().isEmpty() )
192 193
193 194 File file = artifact.getFile();
194 195
195 -if ( isExcluded( file.getPath() ) )
196 +if ( isExcluded( artifact ) )
196 197 {
197 198 getLog().debug( "Skipping generation of signature for excluded " + file );
198 199 continue;
@@ -223,19 +224,24 @@ else if ( project.getAttachedArtifacts().isEmpty() )
223 224 /**
224 225 * Tests whether or not a name matches against at least one exclude pattern.
225 226 *
226 - * @param name The name to match. Must not be null.
227 + * @param artifact The artifact to match. Must not be null.
227 228 * @return true when the name matches against at least one exclude pattern, or false
228 229 * otherwise.
229 230 */
230 -protected boolean isExcluded( String name )
231 +protected boolean isExcluded( Artifact artifact )
231 232 {
233 +final Path projectBasePath = project.getBasedir().toPath();
234 +final Path artifactPath = artifact.getFile().toPath();
235 +final String relativeArtifactPath = projectBasePath.relativize( artifactPath ).toString();
236 +
232 237 for ( String exclude : excludes )
233 238 {
234 -if ( SelectorUtils.matchPath( exclude, name ) )
239 +if ( SelectorUtils.matchPath( exclude, relativeArtifactPath ) )
235 240 {
236 241 return true;
237 242 }
238 243 }
244 +
239 245 return false;
240 246 }
241 247