in src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java [602:644]
private void doAddFileSet(final FileSet fs) {
final String fsPath = fs.getDirectory().getAbsolutePath().replace('\\', '/');
if (fsPath.equals(assemblyWorkPath)) {
LOGGER.debug("SKIPPING fileset with source directory matching assembly working-directory: " + fsPath);
} else if (assemblyWorkPath.startsWith(fsPath)) {
final List<String> newEx = new ArrayList<>();
if (fs.getExcludes() != null) {
newEx.addAll(Arrays.asList(fs.getExcludes()));
}
final String workDirExclude = assemblyWorkPath.substring(fsPath.length() + 1);
LOGGER.debug("Adding exclude for assembly working-directory: " + workDirExclude
+ "\nFile-Set source directory: " + fsPath);
newEx.add(workDirExclude);
final List<String> newIn = new ArrayList<>();
if (fs.getIncludes() != null) {
for (final String include : fs.getIncludes()) {
if (!include.startsWith(workDirExclude)) {
newIn.add(include);
}
}
}
final DefaultFileSet dfs = new DefaultFileSet();
dfs.setCaseSensitive(fs.isCaseSensitive());
dfs.setDirectory(fs.getDirectory());
dfs.setExcludes(newEx.toArray(new String[0]));
dfs.setFileSelectors(fs.getFileSelectors());
dfs.setIncludes(newIn.toArray(new String[0]));
dfs.setIncludingEmptyDirectories(fs.isIncludingEmptyDirectories());
dfs.setPrefix(fs.getPrefix());
dfs.setStreamTransformer(fs.getStreamTransformer());
delegate.addFileSet(dfs);
} else {
delegate.addFileSet(fs);
}
}